- 博客(3)
- 资源 (7)
- 收藏
- 关注
原创 面试管都在问 | 希尔排序
比较类排序系列-希尔排序 1. 原理 希尔排序是对插入排序的扩展。插入排序是对所有数据进行排序,而希尔排序会把数据分成多个分组,每组数据内部进行插入排序,这样的分组插入排序会进行多次,直到最后所有数组都归为一组,整体再进行一次插入排序,则排序完成。假设间隔为gap, 则希尔排序会把数据中任意间隔为gap的数据划分为一组数据,这样就会有gap个分组,每个分组进行插入排序。gap不断的从大到小变化,直到gap为1时,就退化为基本的插入排序。 算法过程如下图所示 从上图可以看到,每一遍中,相同颜色的数据被分成
2020-11-17 16:22:49 279
原创 面试官都在问 | 快速排序C++实现
比较类排序系列-快速排序 1. 原理 快排是C. A. R. Hoare在1960提出的一种排序算法,这是一种采用分治思想的排序算法,大致分为三个步骤。 定基准——首先选择一个元素作为基准值 划分区——所有比基准小的元素置于基准左侧,比基准大的元素置于右侧,构成左右两个子序列 递归调用——递归地调用此切分过程,切分其子序列,直到子序列只含有一个值时停止递归 如下图所示 上图只完整的演示了三次划分的过程,第一次选取3为基准值,进行一次划分,得到了第二行的序列,此时得到两个子序列,如第三行和第五行所示。对
2020-11-16 15:03:01 260
原创 冒泡排序C++实现
比较类排序系列-冒泡排序 1. 原理 冒泡排序的核心思想是,如果有必要,不断的交换相邻的元素,让大的元素逐步向后移动,就像是水底的水泡浮出水面的过程,故称之为冒泡排序。 如下图所示 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qVjuu5z9-1604309341216)(.\image\bubble_sort.gif)] 上述动图演示的为一轮冒泡排序的过程,每一轮冒泡排序,都会把未排序数据中最大的移动到最后面。相当于一轮冒泡排序给一个数据拍好序。所以一般有几个数据,就要
2020-11-02 17:30:17 1834
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人