排序
文章平均质量分 51
Coding强
相信自己能成功,就一定能成功
展开
-
十大排序之快速排序
快速排序 本文将介绍三种快速排序的方法 经典快速排序 随机快速排序 二分快速排序 经典快速排序算法思想 快速排序基于分治的思想,采用递归的方式处理子问题 选取一个哨兵k,这里假设哨兵选取数组第一个元素 即令k = arr[0] = 4 然后设立两个指针 i 和 j 分别初始化指向 第一个元素 和 最后一个元素 第一遍排序 从右往左,依次和哨兵比较,如果大于等于哨兵的值,则 j-- ,否则退出循环,然后交换 arr[i] 和 arr[j] 接着从左往右,依次和哨兵比较,如果小于等于哨兵的值,则 i++原创 2022-03-27 14:00:52 · 699 阅读 · 0 评论 -
十大算法之希尔排序
希尔排序 摘自帅地玩编程 如果不是很理解的话,可以点击上方链接,去看原文 希尔排序是对插入排序的优化算法,将原数组进行分组,然后再组间进行插入排序 定义 gap 为分组间的增量,初始为 arr.length 的一半,然后每次减半,这样效率较高 每次调用插入排序将每一组排好序,这样可以使组内是有序的 增量减半为2,继续排序 增量减半为1,数组已变成有序 以上便是希尔排序的思路 代码 /** *@author:WQL *@date:2022/3/22 *@description:希尔排序原创 2022-03-27 12:03:39 · 760 阅读 · 0 评论