各种排序
。。。。。。。??
这个作者很懒,什么都没留下…
展开
-
可以用来求逆序数对的排序(归并排序)
时间复杂度:O(n log n) 空间复杂度:O(n) 算法 流程: 设n为待排序列元素的个数,a[i]为其中第i个元素,merge_sort为归并排序的函数名,b[i]为两个相邻 子序列合并完的临时有序的序列。 第一步: 将所有的元素 进行二分,直到每个区间 只有一个元素。 然后开始 两两区间 进行合并(有序的合并)。 void build(int l,int r) { ...原创 2020-05-04 22:28:55 · 105 阅读 · 0 评论 -
快速排序
快速排序的思想: 在序列中随便找一个数作为基数,然后将所有比基数大的数放在基数的右边,比基数小的数放在基数的左边。 快排实质上运用的二分的思想。 实现过程:定义两个变量 i 和 j。让其分别从左右两边开始找。i在左边找到一个比基数大的数停下,然后j开始从右边找一个比基数 小的数停下,然后交换两个值得位子。直到i 和 j 相遇。此时变量左边的值都是比基数小的数,右边是比基数大的数。然后交换...原创 2019-08-04 14:56:00 · 137 阅读 · 0 评论