首页 > 编程知识 正文

简单选择排序算法,选择排序算法准则

时间:2023-05-04 21:26:27 阅读:141692 作者:2902

1 .什么是选择排序? 【摘自百度百科】选择排序是一种简单直观的排序算法。

这是一种从要排序的数据元素中首先选择最小(或最大)元素,将其放在序列的开头,然后在剩下的未排序元素中查找最小(大)元素,将其放在已排序序列的末尾的机制。

这样,直到要排序的所有数据元素的数量为零。

选择排序是不稳定的排序方法。

2 .选择排序算法实现(摘自百度百科(C语言版伪代码) ) voidselectionsort(intn,keytype S[] ) {index i,j,smallest; for(I=1; i=n - 1; I ) {smallest=i; for(j=I1; j=n; j ) if(s ) s ) smallest=j ) ) smallest=j; exchange S[i] and S[smallest]; }说明以上步骤。 1 .定义索引变量。 I (外循环索引变量(j )内循环索引变量(smallest )最小值索引变量)2.用for进行数组的外循环,遍历次数为数组整体的长度。 最小值索引变量) smallest ),开始索引为当前外循环索引值(I ) 4。当前外循环索引值5 .将内循环索引变量(j )与最小值索引变量)的数值元素值进行比较,最小值索引每次内部循环结束时,替换最小值索引)和当前外部循环索引) I )的元素

动画说明

图解:

第一个循环的当前外侧循环索引(I )是0,最小值索引smallest )是当前外侧循环索引(I )是0

进入内部循环,条件确定为I ) 1,当前内部循环索引(j )为I );j )为1,当前内部循环索引为I1=0);最小值索引(smallest )为0

内循环索引(j )为2,最小值索引(smallest )为0,进行条件判断,if ) s[j]s[smallest] )=if ) s [ j ]2] s [ smallest ] (0)

在交换之后,最小值索引(smallest )是当前内部循环索引(j ),而最小值索引(smallest )是2

内循环索引(j )被确定为3,最小值索引(smallest )被确定为2,if ) s[j]s[smallest] )=if ) s[j]s[smallest] )-7

在交换之后,所述最小值索引(smallest )是当前内部循环索引(j ),而所述最小值索引(smallest )是3

内循环索引(j )作为4,最小值索引(smallest )作为3进行条件确定(if ) s[j]s[smallest] )=if ) s [ j ]4] s [ smallest (3) )

对于内循环索引(j )给定为5,最小值索引(smallest )给定为3,然后对条件进行确定,if ) s[j]s[smallest] )=if ) s [ j ]5] s [ smallest ) (3)

内循环索引(j )作为6,最小值索引(smallest )作为3进行条件确定,if ) s[j]s[smallest] )=if ) s[j]s[smallest] ) (3)

内循环索引(j )被确定为7,最小值索引(smallest )被确定为3,if ) s [ j ] s [ smallest ] (=if ) s [ j ]7] s [ smallest (3) ]

内循环索引(j )被确定为8,最小值索引(smallest )被确定为3 (if ) s [ j ] s [ smallest ] (=if ) s [ j ]8] s [ smallest (3) )

内循环索引(j )被确定为9,最小值索引(smallest )被确定为3 (if ) s [ j ] s [ smallest ] (=if ) s [ j ]9] s [ smallest (3) )

内循环结束,交换元素,exchange S[i] and S[smallest]; 现在的外侧循环索引(I )为0,最小值索引(smallest )为3,交换数组内的0和3的要素,交换后的数组

下一个循环外循环索引(I )为1,最小值索引) smallest )为1,内循环索引(j )为当前外循环索引) I ) 1,当前内循环索引为I1=1=2,继续内循环搜索最小值索引

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。