
排序算法
文章平均质量分 63
sjystone
这个作者很懒,什么都没留下…
展开
-
归并排序(自顶向下 +自底向上 + 优化)
归并排序快速排序是基于分治的思想,分治思想分为以下三步 1.将区间分解成子区间 2.递归处理子区间 3.合并子区间归并排序 1.确定分界点,即数组中点 2.以数组中点分成左右两边,分别递归排序左边和右边 3.归并,即将两个有序的数列合并成一个有序的序列将有序数列a和b(从小到大)合并成一个有序数列的实现方法 1.新开一个数组c 2.设定两个指针i和j,分别指向a和b的开头 3.将两个指针中更小的那个数加入c中 4.更小的那个指针往后移一位,继续比较 5.最后再把数组c的值放回原数原创 2021-04-04 21:19:23 · 1174 阅读 · 1 评论 -
快速排序 (三向切分优化 + 引入插入排序优化 + 找第k大值)
快速排序快速排序是基于分治的思想,分治思想分为以下三步 1.将区间分解成子区间 2.递归处理子区间 3.合并子区间快速排序步骤: 1.确定分界点x,x一般选择区间的中点对应的值,也可以取其他点 2.对分界点左右区间进行处理,使得所有小于等于x的数在左半边,大于x的数在右半边 3.递归处理左右区间,若左右区间排好序,整个区间就排好序了对某区间进行处理时,用两个指针 i 和 j 指向区间头和尾,相向移动 若遇到 i 指的值大于等于x,i 就停下来 若遇到 j 指的值小于等于x,j 就停下来原创 2021-04-04 17:01:38 · 326 阅读 · 0 评论