C语言数据结构之 简单选择排序

算法:设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。

编译器:VS2013

代码

 1 #include "stdafx.h"
 2 #include<stdlib.h>
 3 #include<stdio.h>
 4 
 5 //函数声明
 6 
 7 void SelectSort(int a[], int n); //简单选择排序(从小到大)
 8 
 9 int main()
10 {
11     int i, n, a[100];
12     printf("请输入需要排序元素的个数:");
13     scanf_s("%d", &n);
14     printf("随机生成的数组为:");
15     for (i = 1; i <= n; i++)
16     {
17         a[i] = rand() % 100 + 1;
18         printf("%d ", a[i]);
19     }
20     a[i] = '\0';
21     printf("\n");
22 
23     SelectSort(a, n);
24 
25 }
26 
27 //简单选择排序(从小到大)
28 void SelectSort(int a[], int n)
29 {
30     int i = 1, j, k, min;
31     for (min = a[1]; i <= n; i++)
32     {
33         k = i;
34         for (j = i; j <= n; j++)
35             if (a[j] < a[k])
36                 k = j;
37         if (k != i)
38         {
39             min = a[k];
40             a[k] = a[i];
41             a[i] = min;
42         }
43     }
44     printf("\n简单选择排序后的结果(从小到大):");
45     for (i = 1; i <= n; i++)
46         printf("%d ", a[i]);
47     printf("\n\n");
48 }

 

结果

posted on 2016-12-22 00:55  么么打123  阅读(1855)  评论(1编辑  收藏  举报