美文网首页C Language
排序方法之选择排序法

排序方法之选择排序法

作者: 水刃一木__九日 | 来源:发表于2017-04-24 10:49 被阅读0次

上次,我们介绍了排序方法中的冒泡排序法,今天我们来介绍另一个比较重要的排序方法---选择排序法。

选择排序法,顾名思义就是通过选择,比较出的大(小)值放在前面,来依次进行排序。

下面举一个例子来说明:有{5,9,7,3}四个数,要求用选择排序法将四个数由大到小进行排序。

##第一步,在四个数{5,9,7,3}中找出其中的最大值9,然后将第一个数5与9进行调换。得到{9,5,7,3};

##第二步,在{9,5,7,3}中后三个数中找出其中的最大值7,然后将第2个数5与7进行调换。得到{9,7,5,3};

##第三步,在{9,7,5,3}中后二个数中找出其中的最大值5 ,5>3,无需交换位置。得到{9,7,5,3}。

##最后,得到结果:{9,7,5,3}。

下面用C程序来实现这个问题。

分析:

由上可知,4个数一共比较3次。那么n个数一共比较n-1次。首先,用外循环控制次数;其次,用内循环找出剩余元素中的最大值的序号,用k来储存序号的值;然后,将剩余元素中的第一个元素与剩余元素中的最大值;最后,输出结果。

程序:

#include<stdio.h>

int main()

{

int i,j,k,t;

int a[4];

printf ("please enter 4 integer numbers:\n");

for (i=0;i<4;i++)

{

scanf("%d",&a[i]);

}

for (i=0;i<3;i++)

{

k=i;

for(j=i+1;j<4;j++)

{

if (a[j]>a[k])

{

k=j;

}

}

if (k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

printf ("The sorted order:\n");

for (i=0;i<4;i++)

{

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

}

printf("\n");

return 0;

}

结果:

选择排序法的结果

相关文章

  • 排序方法之选择排序法

    上次,我们介绍了排序方法中的冒泡排序法,今天我们来介绍另一个比较重要的排序方法---选择排序法。 选择排序法,顾名...

  • JavaScript算法入门--排序--冒泡排序

    一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。...

  • JavaScript算法入门--排序--插入排序

    一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。...

  • C语言中排序方法的使用

    C语言中排序方法 学习目的 今天我们学习了三种排序方法:冒泡排序法、选择排序法、插入排序法。 相关技术,及其实用 ...

  • PHP学习之排序

    排序分为内部排序和外部排序内部排序:所有数据都加载到内存当中。主要方法有冒泡法、选择排序法、插入式排序法和快速排序...

  • iOS算法

    排序方法 选择排序:直接选择排序、堆排序。 交换排序:冒泡排序、快速排序。 插入排序:直接插入排序、二分法插入排序...

  • 各种排序方法

    冒泡排序法 选择排序法 链表排序法 qsort()函数排序法

  • php排序法

    常用排序方法:(1)冒泡法:基本思想: (2)选择排序法; (3)插入排序法;在要排序的一组数中,假设前面的数已经...

  • 排序算法

    排序算法分类 排序算法常用主要有:冒泡排序法、快速排序法、选择排序法、插入排序法、堆排序法、归并排序法等几种。 ...

  • iOS常见算法

    升序算法:用冒泡排序法 选择排序法 快速排序

网友评论

    本文标题:排序方法之选择排序法

    本文链接:https://www.haomeiwen.com/subject/mdtqzttx.html