📄 习题3-简单选择排序.c
字号:
#include "datastru.h"
#include <stdio.h>
void selesort(RECNODE *r, int n)
{/*简单选择排序*/
int i,j,k;
RECNODE temp;
for(i = 1; i < n; i++)
{ k = i; /*k:最小关键字的初始位置*/
for(j = i + 1; j <= n; j++)
if(r[j].key < r[k].key)
k = j; /*k:跟踪记录当前最小关键字的位置*/
if(k != i) /*最小关键字元素和待排序列的第一个元素交换*/
{temp = r[i]; r[i] = r[k]; r[k] = temp;}
}
}
main( )
{ RECNODE a[MAXSIZE];
int i, j, k, len;
printf("\n\n输入待排序数据(整数,以空格隔开,0 结束) : "); k = 0; scanf("%d",&j);
while(j != 0) { k++; a[k].key = j; scanf("%d",&j); }
len = k;
printf("\n排序前 : ");
for (i = 0; i < len; i++) printf(" %d",a[i+1].key);
printf("\n");
selesort (a,len);
printf("\n\n排序后 : ");
for (i = 0; i < len; i++) printf(" %d",a[i+1].key);
printf("\n\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -