排序、查找算法

介绍

这篇文章记录我学习的算法,以及每个算法的思路。
有些算法还没有去研究,现放在那里,以后有时间去学

排序算法

交换排序

快速排序(难)

1、就是从序列中随意选择一个元素,然后把这个序列中的所有小于这个元素的放在左边,大于的放在右边。 2、第一轮循环过后,序列被分成两个,左边小的,右边大的。 3、左边和右边再随机选择一个元素,再按照之前方法进行筛选。

冒泡排序(简单)

1、外层循环数组长度-1次数 2、内层循环并判断两两元素大小,进行排序

插入排序

直接插入排序(简单)

1、三层循环,外层控制循环次数(这个数组有多长,它就循环几次),内两层进行排序。 2、第一次循环数组第一个数,第二次循环数组前两个,第三次循环前四个,以此类推。 3、第一次不用比较,第二次第二个数跟第一比较,第三次第三个跟第一、二比较,以此类推

折半插入排序(有点难度)

1、外层循环次数由数组长度决定 2、内层排序,只是直接插入排序的改进 3、但是折半排序,是要比较的那个元素前面的元素都是排好序的, 4、然后把拍好序的序列长度除2,比较的那个元素和中间元素进行比较 5、小于左移,大于右移,以此类推

希尔排序

1、推荐一个博客,讲的不错。MoreWindows

选择排序

简单选择排序

1、优化:第一轮的时候,进行比较,找出最小的,把它和第一个元素进行交换。

堆排序

归并排序

非比较排序

计数排序

1、桶排序是它的升级版

基数排序

七大查找算法

顺序查找

二分查找

插值查找

斐波那契查找

树表查找

分块查找

哈希查找


转载请注明:Memory的博客 » 点击阅读原文

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦