[Sort]冒泡排序
2015-11-29 11:15
295 查看
#include <iostream> using namespace std; /* * C - compare times * M - move times * * 如果是正序的,一趟扫描即可完成排序,所需的关键字比较次数C和记录移动次数M均达到最小值 * Cmin = n-1 , Mmin = 0; * 即冒泡排序最好的时间复杂度是 O(n) * * 如果初始文件是反序的,需要进行n-1趟排序。每趟排序需要进行n-i次关键字比较,且每次比较都必须 * 移动记录三次来达到交换记录位置,在这种情况下,比较和移动次数均达到最大值。 * * Cmax = n(n-1)/2 = O(n^2); * Mmax = 3n(n-1)/2 = O(n^2); * 冒泡排序最坏的时间复杂度是O(n^2) * * 综上,冒泡排序的平均复杂度是O(n^2) * * 冒泡排序是稳定的排序,相等的数值的前后顺序保持一致。 */ void BubbleSort(int nums[], int n) { int i, j = 0; for(i = 0; i < n-1; i++) { for(j = 0; j < n-i-1; j++) { if(nums[j] > nums[j+1]) { swap(nums[j],nums[j+1]); } } } } void print(int nums[], int n) { for(int i = 0; i < n; i++) { cout<<nums[i]<<endl; } } int main() { int nums[10] = {10,44,22,47,88,43,55,99,64,109}; BubbleSort(nums,10); print(nums,10); return 0; }
相关文章推荐
- 冒泡排序
- C#冒泡法排序算法实例分析
- C++实现对输入数字组进行排序
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- c++冒泡排序示例分享
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- python冒泡排序算法的实现代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- c#冒泡排序示例分享
- 浅谈php冒泡排序
- Javascript冒泡排序算法详解
- C++冒泡排序算法实例
- C语言的冒泡排序和快速排序算法使用实例
- C语言实现冒泡排序算法
- c语言冒泡排序法代码
- 排序算法之PHP版快速排序、冒泡排序
- php排序算法(冒泡排序,快速排序)
- PHP 冒泡排序算法的实现代码
- 冒泡排序算法原理及JAVA实现代码
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等