所谓的选择排序,指的是把一组杂乱无章的数据按照大小顺序排序,选择排序所采用的方法是:首先找到值最小的元素,然后把这个元素与第一个元素交换,这样,值最小的元素就放到了第一个位置,接着,再从剩下的元素中找到值最小的,把它和第二个元素互换,使得第二个元素放在第二的位置上面,以此类推,直到所有的值由小到大顺序排列为止。

如有以下的数据:

7  5  9  3  2  8

则选择排序的处理过程如下:

 -------------
 ↓           ↓
 7  5  9  3  2  8     未排序
             -
    -------
    ↓     ↓
 2  5  9  3  7  8     第一遍扫描后
          -
       ----
       ↓  ↓
 2  3  9  5  7  8     第二遍扫描后
          -
          ----
          ↓  ↓ 
 2  3  5  9  7  8     第三编扫描后
             -
             ----
             ↓  ↓
 2  3  5  7  9  8     第四遍扫描后
                -
 2  3  5  7  8  9     排序完成

来看看程序代码:

#include "stdio.h"
#define NUM 10
void main()
{
	int a[NUM], i, j, r, temp;
	printf("Please input %d numbers:\n", NUM);
	for(i = 0; i < NUM; i++)/*输入数据*/
		scanf("%d", &a[i]);
	for(i = 0; i < NUM - 1; i ++)/*扫描 NUM - 1 次*/
	{
		r = i;
		for(j = i + 1; j < NUM; j ++)/*在一遍扫描中*/
			if(a[j] < a[r])
				r = j;
		if(r != i)/*互换*/
		{
			temp = a[i];
			a[i] = a[r];
			a[r] = temp;
		}
	}
	printf("Now the array after sort:\n");
	for(i = 0; i < NUM; i ++)
		printf("%5d", a[i]);
	printf("\n");
}

来测试一下看看:

选择排序(Selection Sort)---- C 语言学习

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2021-09-17
  • 2021-08-29
  • 2021-06-01
  • 2022-03-09
  • 2021-09-20
猜你喜欢
  • 2021-11-12
  • 2021-05-24
  • 2021-07-05
  • 2021-12-03
  • 2022-02-13
相关资源
相似解决方案