冒泡排序

来源:互联网 发布:java访问nas存储空间 编辑:程序博客网 时间:2024/06/11 04:10

冒泡排序


冒泡排序是一个最基本,最简单的交换排序算法,也是学C语言第一次接触的排序算法。

冒泡排序的基本思想是:依次比较相邻的两个数,将小数放在前面,大数放在后面。由于过程像一个冒泡的过程,所以有了这个形象的名字。

冒泡排序在一个二重循环中进行,所以时间复杂度为O(n^2)


冒泡排序的C++语言实现:

 

/**************************** *Name:冒泡排序.cpp *Tags:排序 *Note: *****************************/ #include<iostream>#defineMAX_SIZE 1000usingnamespace std; intBubbleSort(int *, int, int); intmain(){      int nums[MAX_SIZE];      int len, i;      cout << "Input the number ofthe numbers: ";      cin >> len;      for(i = 0; i < len; i++) {            cin >> nums[i];      }      BubbleSort(nums, 0, len); // 冒泡排序      cout << "The result of thesort process: " << endl;      for(i = 0; i < len; i++) {            cout << nums[i] << " ";      }      cout << endl;      return 0;} intBubbleSort(int *nums, int start, int end){      int i, j, temp;      for(i = start; i < end-1; i++) {            for(j = 0; j < end - i - 1; j++) {                     if(nums[j] > nums[j+1]) {                            temp = nums[j];                            nums[j] = nums[j+1];                            nums[j+1] = temp;                     }            }      } //排序过程      return 0;}

冒泡排序是一个稳定的排序算法,但是当规模n很大时,效率就没有其他高级算法那么好了,对于冒泡排序的一个改进算法是鸡尾酒排序,即双端冒泡排序,当然还有有名的快速排序了。