算法不会,尚能饭否之排序——直接选择排序
前面讲了那么多的排序,不知道有没有人看,如果有人看,就吱一声,也好让我有信心在写下去了!
不管了,还是那句话,写自己的博文,让别人说去吧,现在应该是,写自己的博文,让别人看去吧!看不
看,是你的事,写不写是我的事!好了,废话少说,开始今天的征程——直接选择排序!
算法思想:所谓直接选择排序,如下:
(1) 在一组对象v[i]~v[n - 1]中选择具有最小关键码的对象
(2) 若它不是这组对象中的第一个对象,则将它与这组对象中的第一个对象对调
(3) 在这组对象中剔除这个具有最小关键码的对象,在剩下的对象v[i + 1]~v[n - 1]中重复执行第
(1)、(2)步,直到剩余对象只有一个为止。
说了这么多,你应该懂得~~。
好了,现在来讲讲我的实现方法。首先需要两层循环,为什么,看了,因为看了思路,直觉告诉我
的,现在我就告诉你是两层的。不要问我为什么?外层循环获得一个新的数,现在我的目的是将这个
新数放到数组中的正确地方去。你懂得。你要选择正确的地方,
内层循环就是控制这个选择的。如何选择,没获得一个新的数,你必须要将它们依次和这个数之前的
数进行比较,如果满足条件,什么条件,这个需要看你的了,因为条件有升序和降序之分的。好了,
满足了条件,就进行调换,数组中两个元素的对换那个是不是有点太简单了,我都不好意思提了。好
了。亲手实现吧。代码贴上:
这是我写的代码,如果大家觉得我写的不对,希望大家给我提出,和我一起分享。谢谢!我的宗旨
是,你我共同学习!
现在回过头来看看,直接选择排序和直接插入排序有什么不同吗?