冒泡排序

冒泡算法

冒泡排序的基本思想是:每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来

1、从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置。
2、指针由第一个数据移向第二个数据,第二个数据与第三个数据相比较,如果第三个数据小于第二个数据,则交换两个数据的位置。
3、依此类推,完成第一轮排序。第一轮排序结束后,最大的元素被移到了最右面。
4、依照上面的过程进行第二轮排序,将第二大的排在倒数第二的位置。
5、重复上述过程,没排完一轮,比较次数就减少一次。

代码:

#include <stdio.h>

int main()
{
   int a[10],i,j,t,n = 10; 
    for(i = 1; i <= n; i++)
    {
        a[i] = i - 1;
    }
    //核心部分
    for(i = 1; i <= n; i++)
        for(j = 1;j <= n - i; j++)
        {
            if(a[j] <= a[j + 1])
            {
                t = a[j];a[j] = a[j + 1];a[j + 1] = t;
            }
        }
   for(i = 1; i <= n; i++)
       printf("%d ",a[i]);
    getchar();
   return 0;
}

运行结果:

9 8 7 6 5 4 3 2 1 0 

时间复杂度:

O(N²)

总结:如果有n个数进行排序,只需将n-1个数归位,也就是说要进行n-1趟操作,而“每一趟”都需要从第1位开始进行相邻两个数的比较,将较小的一个数放在后面,比较完毕向后挪一位继续比较下面两个相邻数的大小,重复此步骤,直到最后一个尚未归位的数,已经归位的数无需在比较

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,742评论 0 15
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,214评论 0 52
  • 这样的一天 我什么也不想干 猫在我的怀里睡觉 它依偎着我的胳膊 我能感受到它的呼吸 就这样安静的看着它 不管外面世...
    致郁系张月亮阅读 110评论 0 0
  • 1.eclipse+python+unittest (1)eclipse安装 下载地址:https://www.e...
    我不喜欢吃苹果阅读 524评论 0 1
  • 书籍《说话的魅力》 字数:551 当响尾蛇在摇它尾巴的时候,你要小心的是他的头。 我今年三月份去杭州参加培训的时候...
    炉边雪人阅读 200评论 0 0