您的位置:首页 > 运维架构 > Linux

Linux C一站式学习习题答案11.2 实现选择排序(Selection Sort)算法

2014-08-26 19:05 459 查看
1.实现选择排序(Selection Sort)算法:第一次从数组 a[0..LEN-1] 中找出最小元素交换到 a[0] 的位置,第二次从数组 a[1..LEN-1] 中找出最小元素交换到 a[1] 的位置,依此类推。排序过程举例如下:

10, 5, 2, 4, 7
2, 5, 10, 4, 7
2, 4, 10, 5, 7
2, 4, 5, 10, 7
2, 4, 5, 7, 10

源代码:

#include <stdio.h>
#define N 5

int sort (int a[])
{
int i, j, k, temp;
int n;

for (i=0; i < N; i++)
{
k = i;
for (j = N-1; j > i; j--)
{
if (a[k] > a[j])
{
k = j;
}
}

if (k != i)
{
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
printf ("\n%dth sorted:\n", i+1);
for (n = 0; n < N; n++)
printf ("%-4d", a
);
}

return 0;
}

int main (void)
{
int i, a
, *p;

printf ("Please input original array:\n");
for (i = 0; i < N; i++)
scanf ("%d", &a[i]);

p=a;
sort (p);

printf ("\n\nThe sorted array:\n");
for (p=a, i = 0; i < N; i++, p++)
printf ("%-4d", *p);

printf ("\n");
return 0;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: