排序算法
文章平均质量分 66
cpp_learners
C/C++、qt、MySQL、算法 学习者
展开
-
C/C++ 七大排序算法 之 “快速排序”
使用“乾坤大挪移”将一个无序的数组排好序!原创 2021-06-22 20:06:32 · 677 阅读 · 9 评论 -
C/C++ 七大排序算法 之 “归并排序”
归并排序,使用到了递归,其思想比较难理解,本人也只是一知半解。原创 2021-06-18 19:37:56 · 868 阅读 · 0 评论 -
C/C++ 七大排序算法 之 “希尔排序”
排序:即将一组混乱的数据按从小到大或者从大到小的顺序进行有序的排列出来。希尔排序算法图解:思路解答:选择增量 :gap = length / 2,缩小增量:gap = gap / 2增量序列:用序列表示增量选择,{ n / 2, (n / 2) / 2, …, 1}先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,具体算法描述:选择一个增量序列 t1,t2,…,tk,其中 ti>tj,tk=1;按增量序列个数 k,对序列进行 k 趟排序;每趟排序,根据对应的增量 ti,原创 2020-07-08 17:32:24 · 3879 阅读 · 4 评论 -
C/C++ 七大排序算法 之 “插入排序”
排序:即将一组混乱的数据按从小到大或者从大到小的顺序进行有序的排列出来。插入排序算法图解:思路解答:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用 in-place 排序(即只需用到 O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元原创 2020-07-01 16:59:27 · 2568 阅读 · 0 评论 -
C/C++ 七大排序算法 之 “冒泡排序”
排序:即将一组混乱的数据按从小到大或者从大到小的顺序进行有序的排列出来。冒泡排序算法图解:思路解答:从第一个数据开始,与其后一个数据进行比较,如果后面的数据比他小,则它两互相交换位置;然后再从第二个数据开始,与其后一个数据进行比交,如果后面的数据比他小,则它两互相交换位置;然后再从第三个数据开始…;如果有遇到后面的数据比它还要大的,则无需交换。时间复杂度:O(n2)代码实现:void BubbleSort(int *arr, int len) { for (int i = 0; i &l原创 2020-06-27 11:33:02 · 541 阅读 · 0 评论 -
C/C++ 七大排序算法 之 “选择排序”
排序:即将一组混乱的数据按从小到大或者从大到小的顺序进行有序的排列出来。选择排序算法图解:思路解答:从第一个数开始,跟后面的所有数据进行比较,当有数据比他还小,则标记该数据,然后用标记的数据与后续的数据再进行比较,直到比较完一轮为止,然后拿最后标记的数据与第一个数据做交换。然后开始第二轮的比较,从第二个数据开始与后面的数据比较…时间复杂度:O(N2)代码实现:// 升序选择排序,找到最小的数据排在前面void SelectionSort_1(int* beauties, int len) {原创 2020-06-26 11:30:05 · 3235 阅读 · 0 评论