排序算法笔记——选择排序

重要的排序:插入排序、堆排序、归并排序、快速排序。
在这里插入图片描述

选泡插
快归堆希统计基
恩方恩老恩一三
对恩加K恩乘K

选择排序

在这里插入图片描述

一遍一遍的过滤数组,然后找到数组里面最小的数,把它放到前面来。
第一遍,过滤整个数组,找到最小的数1,然后把1和第一个数5换位置。
第二遍,因为第一个最小的数已经找到了,即除了第一个数1之外的剩下的部分,找出最小的数,重复这个过程。。
在这里插入图片描述
具体例子:如10个人排成从低到高的队列。
首先是从10个人中找出最矮的放到第一个,然后从第二个人开始找出第二个矮个子的。。。。。直到全部排列结束。

———————————————————具体步骤:
首先记录最小值的下标,假设最开始的最小值下标为0即nums[0],用最小值下标位置上的数和下一个数作比较,5和2一比,2更小,此时最小值下标要变,下标变为1,接下来继续往下比,2和4比,还是2小,所有此时的最小值下标不变。接着用最小值下标的值2和下一个元素值1比,发现1更小,此时最小值下标变换,变为元素1对应的索引3.此时最小值为1,接着最小值和下一个元素比,1和3比,发现还是1最小,下标不变。此时数组已经遍历完一遍了,已经找到了最小值的索引值3,
在这里插入图片描述
此时把最小值索引位置和数组中的第一个数做调换。
在这里插入图片描述
接着把去掉第一个值的数组看作一个崭新的数组,重复之前的步骤。
在这里插入图片描述

写算法流程

能写啥就写啥,多多的写出来;
写几步,就运行。多多的运行,确定中间的没问题了,就继续。

找个例子,写写试试。
在这里插入图片描述
记录最小值的位置,假设最开始的位置为0.
在这里插入图片描述
然后最小值和第一个位置的元素互换。
在这里插入图片描述
接着把第一个数剔除,把后面的数看出一个新的数组,重复之前的步骤。。。。

即改变代码结构,构造循环。
在这里插入图片描述
精细,把调换封装成方法:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45942265/article/details/118436011
今日推荐