首页 > 编程知识 正文

简单选择排序法例题,选择排序法c语言详解

时间:2023-05-04 06:44:56 阅读:141707 作者:3136

选择排序方法选择排序方法也是枚举方法的应用,从未排序的数列中取出最小的元素,重复添加到另一个数列,最后的结果是已排序的数列。 选择排序方法后,可以用两种方法排序。 也就是说,如果要在所有数据中按从大到小的顺序排序,请将最大值放在第一个位置。 如果按从小到大的顺序排序,最大值将位于最后一个位置。 例如,重复首先从所有数据中选择最小的项并将其放置在第一个位置,然后从较小的项中选择并将其放置在第二个位置,直到排序完成。

示范来源: 55、23、87、62、16

第一次扫描:找到数列的最小值,然后交换数列的第一个元素

十六、二十三、八十七、六十二、五十五

第二次扫描:从第二个项目开始搜索,除了第一个项目以外,找到这个数列中的最小值,和第二个项目的元素交换位置

十六、二十三、八十七、六十二、五十五

第三次扫描:从第三个开始搜索

十六、二十三、五十五、六十二、八十七

第四次扫描:从第四个开始搜索

十六、二十三、五十五、六十二、八十七

步骤示例# include stdio.h # include stdlib.hvoidselect (int *; voidshowdata(int*; int main () int data [8]={ 55,23,87,62,16,34,65,25 } printf ) beforesort: ); showdata(data; printf (* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * () ) ) ) ) ) ) )。 打印(aftersort : ); showdata(data; 返回0; }voidshowdata(int* ) { int i; for(I=0; i8; I ) printf('=',data[i]; 打印((n ); }voidselect(int* ) { int i,j,tmp; for(I=0; i7; I ) for(j=1; j8; j () if ) data[I]data[j] ) { tmp=data[i]; data[i]=data[j]; data[j]=tmp; }showdata(data; }printf((n ); }

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