C++ 排序算法(1)---冒泡,选择,插入
2016-11-29 15:23
204 查看
今天来写点算法,就当是复习了。
冒泡,选择,插入这三个算法效率都挺一般的,但思想接近,所以放在一起写。
50000个数排序结果:
无序
![](http://img.blog.csdn.net/20161129144912866)
有序
![](http://img.blog.csdn.net/20161129144921194)
![](http://img.blog.csdn.net/20161129150314541)
无序数组
![](http://img.blog.csdn.net/20161129151324617)
有序数组
![](http://img.blog.csdn.net/20161129151330664)
![](http://img.blog.csdn.net/20161129150128024)
无序数组
![](http://img.blog.csdn.net/20161129150827924)
有序数组(对有序数组而言插入排序基本在干拿起一个数再放回去的操作,所以速度很快)
冒泡,选择,插入这三个算法效率都挺一般的,但思想接近,所以放在一起写。
冒泡算法
运行时间稳定,时间复杂度 O(n^2),非常简单粗暴,当然效率也不高。这里不多讲。void BubbleSort(int a[], int n) { for (int i = 0; i < n; i++) for (int j = 1; j < n - i; j++) if (a[j - 1] > a[j]) std::swap(a[j - 1], a[j]); }
50000个数排序结果:
无序
有序
选择算法
我一直把选择算法视为冒泡排序的改进版,其思想是从数组的无序部分中找出最大(最小)值,然后将其放入有序部分中。void SelectSort(int a[], int n) { int j,minIndex; for(int i=0;i<n;++i) { minIndex=i; for(j=i+1;j<n;++j) if(a[j]<a[minIndex]) minIndex=j; std::swap(a[i],a[minIndex]); } }
无序数组
有序数组
插入算法
插入算法与选择算法刚好相反,他是从数组的无序区随便选取一个数然后插入到有序区的合适位置。void InsertSort(int a[], int n) { int i, j; for (i = 1; i < n; i++) if (a[i] < a[i - 1]) { int temp = a[i]; for (j = i - 1; j >= 0 && a[j] > temp; j--) a[j + 1] = a[j]; a[j + 1] = temp; } }
无序数组
有序数组(对有序数组而言插入排序基本在干拿起一个数再放回去的操作,所以速度很快)
相关文章推荐
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
- 自己动手实现数据结构——排序算法1(冒泡、插入、归并、简单选择)(C++实现)
- 常见排序算法(冒泡、选择、插入、快速、归并C++实现)
- 关于几个复杂度为N^N的排序算法-冒泡,插入,选择(C++实现)
- 排序算法总结与C++实现(冒泡、简单选择、直接插入、堆、归并、快速)
- 常见排序算法C++实现(冒泡,直接插入,希尔,堆,归并,简单选择,快排)
- C++排序算法总结(冒泡、插入、选择、希尔、归并、快速、堆)
- 排序算法(插入 冒泡 选择 希尔 增量希尔 堆 快排 快选)
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 10种排序算法总结(冒泡、选择、插入、希尔、归并、快速、堆、拓扑、锦标赛、基数)
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 常见内部排序算法 简单数组实现与分析(快速(偶原创partition函数,望众高手指正)、归并、希尔、插入、选择、冒泡)
- Java数组排序算法,冒泡,选择,插入,快速排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- Java三种常见的排序算法:冒泡,选择,插入
- Java三种常见的排序算法:冒泡,选择,插入
- 各类排序C++实现(冒泡,选择,插入,快排,归并,堆排)
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序