Selectionsort

算法作用:将一个无序的数组a 按照非降序排序!

算法思想:首先把数组a[] 的第一个元素放在数组 b[]中,然后从a[1]开始和a[0] 进行比较,如果小于a[0],那么跟a[0] 交换,直到将a 中的元素遍历完成。下次循环从a[2]开始依次比较和a[1] 的大小,如果小于a[1],那么跟a[1] 交换,直到将a 中的元素遍历完成。依次执行步骤,直到所有的数据排序完成!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
#include<malloc.h>
void selectionsort(int a[], int N)
{
int i,j,k;
for (i=1; i<N; i++)
{
for (j=i; j<N; j++)
{
if(a[j]<a[i-1])
{
k = a[i-1];
a[i-1] = a[j];
a[j] = k;
}
}
}
}
int main()
{
int N,i;
int *a;
printf("Please input the numbers:");
scanf("%d", &N);
a = (int* )malloc(N*sizeof(int));
for(i=0; i<N; i++)
scanf("%d",&a[i]);

selectionsort(a, N);
for(i=0; i<N; i++)
printf("%d",a[i]);
}
------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道