排序
@余笙!
hello world!
展开
-
选择排序
排序原理: 每一次从待排序的数据元素中选出最小(或最大)的一个元素存放在序列的起始位置,知道全部待排序的数据元素排完 图解: (假设原数组为:5,2,4,6,3,1) 代码实现: int GetMinIndex(vector<int>& v, int left, int right){ int min = v[left]; int index = left; for (int i = left + 1; i<right; ++i) { if (v[i]原创 2021-04-13 19:43:30 · 100 阅读 · 0 评论 -
冒泡排序
排序原理: 将临近的两个元素互相比较,将大的元素放在后面,依次循环下去,第一趟完成比较后,最大的元素会排在最后,第二趟后第二大的元素会排在倒数第二位,n-1趟后元素全部被排完。 图解: (假设原数组为:5,2,4,6,3,1) 代码实现: void BubbleSort(vector<int>& v, int left, int right){ for (int i = left; i < right; i++){ for (int j = left; j &原创 2021-04-13 17:13:13 · 77 阅读 · 0 评论 -
直接插入排序
排序原理: 当插入第i(i>=1)个元素时,前面的i-1个元素已经排序好,此时用第i个元素的值与第i-1,i-2个元素的值进行比较,找到插入位置就可将第i个元素插入,原来位置的元素顺序后移 图解: (假设原数组为:5,2,4,6,3,1) 图画的略微有点敷衍,大家凑合着看 代码实现: #include<iostream> #include<vector> using namespace std; void QuickSort(vector<int>原创 2021-04-12 15:16:36 · 104 阅读 · 0 评论