早教吧作业答案频道 -->其他-->
直接插入排序+简单选择排序通过两种方法进行排序,以达到整个序列有序[基本要求](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;
}
看了直接插入排序+简单选择排序通过...的网友还看了以下:
若干同学上体育课,排成3行少1人,排成4行多3人,排成5行少1人,排成6行多5人,则上体育课的同学 2020-05-13 …
六年级下册数学期末试卷五1班同学上体育课,排成3行少1人,排成4行多3人,排成5行少1人,排成6行 2020-05-21 …
如果不用分步算的,只有列式就够了.1.七年15班同学上体育课,排成3行少一人,排成4行多3人,排成 2020-06-06 …
站长方形队伍,排3行少1人,排4行多3人,排5行少1人,排6行多5人,问一共多少人?五一班同学上体 2020-06-11 …
1-10数字排例,排成10行,每个数字横,纵只能是1-10里面的.不能重复.比如第一行:1,2,3 2020-06-30 …
英语翻译以下内容中文翻译成英文!1、负责工作安排采购范围内的采购任务,控制采购成本。2、提供书面报 2020-07-22 …
VB来达到交换位置解冒泡法将6,3,7,8,2,1按从小到大排列,需要进行数据比较的次数是?1,需 2020-07-23 …
六(1)班学生上体育课.排成3行少1人,排成4行多3人.排成5行少1人,排成6行多5人.上体育课的学 2020-11-24 …
一堆数,排列找规律:第一行:1,第二行:1,1第三行:2,1第四行:1,2,1,1第五行:1,1,1 2020-12-15 …
0第一行是1,第二行是1,1;第三行是1,2,1;第四行是1,3,3,1;第五行是1,4,6,4,1 2020-12-15 …