常见的排序算法介绍与分析
本文于 2927 天之前发表,文中内容可能已经过时。
算法是一个计算机开发者的基本功之一,也是面试时经常喜欢问或者变着法子问解题思路的一门基础学科,本文主要介绍面试经常考到的排序算法。
常见的几种排序算法介绍
插入排序:
- 直接插入排序
- 折半插入排序
- 希尔排序(增量排序)
交换排序:
- 冒泡排序
- 快速排序
选择排序:
- 简单选择排序
- 推排序
面试经常考到的排序算法介绍
插入排序中的希尔排序
希尔排序又叫增量排序,其实字面直接理解每次根据某个值逐渐增大值排序,那这个值具体指的是什么呢?又是以什么方式增量的呢?赶紧来看看吧。。。
概念 :希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
以上概念中可得知的增量其实是记录的间隔,增量的作用通过下标来按间隔进行分组,增量减至1,排序结束。
比如说:1 5 -7 9 10 23 45 增量设置为4,那么组数为4组
**1组:1 10 **
**2组:5 23 **
**3组:-7 45 **
**4组:9 **
下面通过图直观了解下
1 |
|
交换排序的冒泡排序
冒泡排序是现实中经常遇到的,也是容易理解的一种交换算法,For Example:班级上体育课先让同学们自己排,然后老师按身高从低到高再排队伍。
1 | for(int i=0;i<data.length;i++) |