简单的排序算法
冒泡排序
冒泡排序:相邻的数据两两比较,小的放前面,大的放后面。
1,相邻的元素两两比较,大的放右边,小的放左边。
2,第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面以此类推。
3,如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以。
代码练习:
选择排序
选择排序:从0索引开始,拿着每一个索引上的元素跟后面的元素依次比较,小的放前面,大的放后面,以此类推。
米
选择排序:
1,从0索引开始,跟后面的元素一一比较。
2,小的放前面,大的放后面。
3,第一次循环结束后,最小的数据已经确定。
4,第二次循环从1索引开始以此类推。
代码练习:
插入排序
插入排序:将0索引的元素到N索引的元素看做是有序的,把N+1索引的元素到最后一个当成是无序的。遍历无序的数据,将遍历到的元素插入有序序列中适当的位置,如遇到相同数据,插在后面。N的范围:0~最大索引
代码练习
递归算法
递归算法:递归指的是方法中调用方法本身的现象。
递归的注意点:递归一定要有出口否则就会出现内存溢出
递归算法的作用:把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
书写递归的两个核心:
找出口:什么时候不再调用方法。
找规则:如何把大问题变成规模较小的问题
递归代码练习:
快速排序
将排序范围中的第一个数字作为基准数,再定义两个变量start,end
start/从前往后找比基准数大的,end从后往前找比基准数小的。
找到之后交换start和end指向的元素,并循环这一过程,直到start和end
处于同一个位置,该位置是基准数在数组中应存入的位置,再让基准数归
位。
代码练习: