早教吧 育儿知识 作业答案 考试题库 百科 知识分享

直接插入排序+简单选择排序通过两种方法进行排序,以达到整个序列有序[基本要求](1)通过键盘输入关键字序列,建立无序的顺序表(2)输出建立无序的顺序表(3)对建立的顺序表采

题目详情
直接插入排序+简单选择排序
通过两种方法进行排序,以达到整个序列有序
[基本要求]
(1) 通过键盘输入关键字序列,建立无序的顺序表
(2) 输出建立无序的顺序表
(3) 对建立的顺序表采用直接插入和简单选择排序两种方法进行排序后输出顺序表。
▼优质解答
答案和解析
#include
#define MAX 10
#define SWAP(x,y) {int t;t = x;x = y;y = t;}
insert_sort(int a[],int n)
{
int i,j,temp;
for(i = 1;i < n;i++){
temp = a[i];
for(j = i -1;j >= 0 && temp > a[j];j--)
a[j+1] = a[j];
a[j+1] = temp;
}
}
void select_sort(int a[],int n)
{
for(int i=0; i< n-1; i++)
{
int pos = i;
for(int j=i+1; j {
if (a[j] < a[pos]) pos = j;
}
if(pos!=i)
SWAP(a[pos], a[i]);
}
}
int main(void)
{
int i, num;
int a[MAX] = {0};
for(i = 0;i scanf("%d",&a[i]);
printf("排序前:");
for(i = 0; i < MAX; i++) {
printf("%d ",a[i]);
}
insert_sort(a,MAX);
//select_sort(a,MAX);
printf("\n排序后:");
for(i = 0; i < MAX; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
看了直接插入排序+简单选择排序通过...的网友还看了以下: