前言:
开始接触算法了,记录下心得。打好基础,daydayup!
算法
算法是指解决某个实际问题的过程和方法
排序算法
排序算法指给混乱数组排序的算法。常见的有:冒泡排序,选择排序
冒泡排序:
冒泡排序指在数组中依次俩俩对比,将较大值/较小值放在数组的后面,最终实现排列
实验1:将混乱的数组以从小到大的位置排序
原理:第一个位置和第二个位置对比,将较大值移至后位;随后将第二位和第三位对比,将较大值移至后位...最终数组将按从小到大的顺序排序
实现:首先思考如果需要完成排列,每个位置都能够对比到需要循环几次;其次思考每个数字需要对比几次,最后思考如何把数字交换位置
操作如下:
选择排序
选择排序指选择当前位置,遍历之后的每一个位置使最大值/最小值与当前位置交换
实验2:将混乱的数组以从小到大的位置排序
原理:首先以第一个位置为参照,将每个位置和第一个位置做对比,把较大值移至后位;随后以第二个位置为参照,将每个位置和第一个位置做对比,把较大值移至后位...最终数组将按从小到大的顺序排序
实现:可以理解为当前位置不动,每一个位置都要和当前位置作比较,思考每一个“当前位置”需要对比几回,随后思考每一个位置都对比完需要经过几轮
操作如下:
拓展:优化算法
由于数字每一次交换会消耗性能,如何实现少交换?
记录索引位置即可,将当前位置设定成最小值的索引位置,随后把每一个位置的数据都和当前位置对比,最后替换最小值索引,最后把该索引的数字和当前位置的数字替换即可。
操作如下:
总结:
算法是编程的灵魂。虽然条条大路通罗马,但是一个好的算法,能使运行更加快捷,要多练多思考。整理结束,撒花!!!