排序算法---冒泡排序

来源:互联网 发布:淘宝怎么打假手机 编辑:程序博客网 时间:2024/04/30 16:31

一. 冒泡排序的过程(升值排序)

       1. 将第一个记录的关键字与第二个记录的关键字进行比较,若key[1] > key[2], 则交换。然后比较第二个与第三个,依此类推,直到第n-1个与第n个比较为止,第一趟排序完后,记录最大的关键字会被排在最后面。

        2. 将记录的前n-1个关键字进行第二趟比较交换,直到前n-1个中最大记录的关键字落在第n-1个位置为止。

        3. 重复上述操作,直到一趟过程中没有任何交换操作为止。

 

二.  时间复杂度

       一趟的比较次数为: n-1  , 则总的比较次数为: (1/2) * (n2-n) , 其时间复杂度为O(n2).

 

三. 冒泡排序代码

#include <stdio.h>int main(){int a[10] = {100, 90, 80, 70, 60, 50, 40, 30, 20, 10};int i, j, temp;int flag = 0;for (i=0; i<10; i++){for (j=0; j<9-i; j++){if (a[j] > a[j+1]){temp = a[j+1];a[j+1] = a[j];a[j] = temp;flag = 1;}}if (0 == flag){printf("This array number don't need sort.\n");break;}}for (i=0; i<10; i++)printf("%d\t", a[i]);putchar('\n');return 0;}


 

原创粉丝点击