早教吧作业答案频道 -->其他-->
直接插入排序+简单选择排序通过两种方法进行排序,以达到整个序列有序[基本要求](1)通过键盘输入关键字序列,建立无序的顺序表(2)输出建立无序的顺序表(3)对建立的顺序表采
题目详情
直接插入排序+简单选择排序
通过两种方法进行排序,以达到整个序列有序
[基本要求]
(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;
}
#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
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;
}
看了直接插入排序+简单选择排序通过...的网友还看了以下:
待排序关键字序列为{49,38,65,97,1 3,76,27,49),对其进行Shell排序,取d 2020-05-26 …
羊城中学今年招收2班初一新人,这批学生在操场排队,站2排对齐,恰剩1人,站4排对齐恰剩3人,站6排 2020-06-11 …
某校初3学生在操场排队某校初三学生在操场排队,站2排对齐恰剩1人,站3排对齐恰剩2人,站4排对齐恰 2020-06-11 …
已知有一关键字序列为{12,9,24,52,37,42,17,99,11,30},分别写出执行以下 2020-07-23 …
排列组合5对夫妇共10人(1)全体排成一排,每对夫妇必须站在一起,有多少种排法(2)全体排成一排, 2020-07-23 …
1.请将-2,-1,0,1,2,3,4,5,6这9个数分别填入九宫格中(就是横着3排,竖着3排)使 2020-07-26 …
根据上排的数填写下排的数,并满足要求.根据上排给出十个数,在其下排填出对应的十个数,要求下排每个数 2020-07-30 …
将正整数按如图所示的规律排列下去,若用有序数对(n,m)表示第n排,从左到右第m个数,如(4,3) 2020-08-03 …
已知初始待排序关键码{5,8,1,3,9,6,2,7},回答下列问题:(1)写出采用冒泡法排升序的前 2020-12-05 …
用简单插入排序法对关键字值序列{12,3,24,45,1,18}按从小到大的顺序进行排列,写出每趟排 2020-12-24 …