C语言选择排序方法详情(选择排序算法的C语言代码)

Դ新浪

ߣ优化

17

2021-11-03 10:34:19

上次三分钟就给大家讲了泡泡排序算法。今天给大家讲了选择性排序算法。仍然只需要三分钟就能快速记住。跟我来!

上动画

c语言选择排序法详情(选择排序算法c语言代码)

c语言选择排序法详情(选择排序算法c语言代码)

c语言选择排序法详情(选择排序算法c语言代码)

c语言选择排序法详情(选择排序算法c语言代码)

给“654321”的六个数字加顺序的流程。

一般流程:

我们将一串要排序的数字分成已排序和待排序(当然,所有初始状态都要排序)。然后,将待排序中的最小值与每次通过的待排序中的第一个元素交换,然后将待排序中的第一个元素分类为已排序。这个过程要进行六次才能完成分拣。

选择排序原则:

(1)在开始时,找到序列中最小(大)的元素,并将其放在序列的起始位置,作为排序后的序列。

继续从剩余的未排序元素中搜索最小(大)的元素,并将其放在排序序列的末尾。

(3)以此类推,直到所有元素都被排序。

选择性排序和冒泡排序的区别:

选择排序是在剩余待排序的数字中找到最小的数字,重新交换;泡泡排序就是看到小的就交换。

选择排序代码:

#包含cstdio

/*交换功能。

*传入:要交换的两个元素的地址*/

void swap(int *x,int * y){ 0

int temp=* x;

* x=* y;

*y=温度;

}

/*递增顺序的选择和排序。

*传入:要排序的数组a,数组元素的数量n */

void selectSort(int a[],int n){ 0

/*进行n次操作*/

for(int I=0;I n;I){ 0

int min _ index=I;//记录待排序部分最小值的下标。

/*扫描要排序的零件,知道下标的最小值*/

for(int j=I;j n;j ) {

if(a[j] a[min_index])

最小索引=j;//随时更新最小下标。

}

swap(a i,a min _ index);//在当前位和要排序的部分之间交换最小值。

}

}

int main(){ 0

int a[]={5,2,3,4,15,16,100,23,88 };

选择排序(a,9);

for(int I=0;I 9;(一)

printf("%d ",a[I]);

//输出结果:2 3 4 5 15 16 23 88 100。

}

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部