排序算法
凉宫亲
这个作者很懒,什么都没留下…
展开
-
c++ 冒泡排序
冒泡排序 冒泡排序算法的原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 自我理解:每每两个相邻元素相比较,最后把最大的...原创 2019-03-19 20:44:32 · 199 阅读 · 0 评论 -
c++ 插入排序
插入排序 插入排序原理 从整个待排序列中选出一个元素插入到已经有序的子序列中去,得到一个有序的、元素加一的子序列,直到整个序列的待插入元素为0,则整个序列全部有序。在实际的算法中,我们经常选择序列的第一个元素作为有序序列(因为一个元素肯定是有序的),我们逐渐将后面的元素插入到前面的有序序列中,直到整个序列有序。 自我理解:插入排序就像空手从桌子上拿扑克牌一眼,每拿一张就在进行排序,然...原创 2019-03-19 21:05:24 · 215 阅读 · 0 评论 -
c++ 选择排序
选择排序 选择排序原理 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 算法复杂度 平均时间复杂度为O(n^2) 算法稳定性 举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中两个5的相对前后顺序就被破...原创 2019-03-19 21:27:05 · 156 阅读 · 0 评论 -
c++ 快速排序
快速排序 快速排序算法复杂度 快速排序的平均时间复杂度为O(n×log(n)),最糟糕时复杂度为O(n^2) 算法稳定性 不稳定。 c++实现代码 #include<iostream> using namespace std; void QuickSort(int* a, int low, int high); int Partition(int* a, int...原创 2019-03-19 21:42:51 · 219 阅读 · 0 评论