求填空 自定义函数,用冒泡法/选择法实现对一维数组的升序/降序排列..
4、自定义函数,用冒泡法/选择法实现对一维数组的升序/降序排列。源程序:#include<stdio.h>voidbubble_sort(inta[],intN)/*冒泡...
4、自定义函数,用冒泡法/选择法实现对一维数组的升序/降序排列。
源程序:
#include < stdio.h >
void bubble_sort(int a[], int N) /*冒泡排序,N是数组a的长度*/
{
}
void select_sort(int a[], int N) /*选择排序,N是数组a的长度*/
{
}
void main()
{ int i,select;
int a[20]={2,43,54,1,23,6,4,8,86,98,23,43,12,4,32,43,4,9,80,67};
printf("排序前:\n");
for(i=0;i<20;i++)
printf("%d ",a[i]);
printf("\n1 冒泡升序;2 选择降序;\n请输入排序方式:");
scanf("%d",&select);
switch(select)
{
case 1:
/*调用冒泡排序(升序)*/
break;
case 2:
/*调用选择排序(降序)*/
break;
default:
printf("input error!\n");
}
printf("排序后:\n");
for(i=0;i<20;i++)
printf("%d ",a[i]);
}
选择排序
假定选一个最小的,依次把后面的数与它进行比较。每进行一轮比较,就要找出一个最小的数。
第一轮比较,将最小的数放在第一个位置。
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环。
冒泡排序
依次比较相邻两个数,小数放前,大数放后。
第一轮比较,则得到最后一个位置是所有数中的最大的一个数。 展开
源程序:
#include < stdio.h >
void bubble_sort(int a[], int N) /*冒泡排序,N是数组a的长度*/
{
}
void select_sort(int a[], int N) /*选择排序,N是数组a的长度*/
{
}
void main()
{ int i,select;
int a[20]={2,43,54,1,23,6,4,8,86,98,23,43,12,4,32,43,4,9,80,67};
printf("排序前:\n");
for(i=0;i<20;i++)
printf("%d ",a[i]);
printf("\n1 冒泡升序;2 选择降序;\n请输入排序方式:");
scanf("%d",&select);
switch(select)
{
case 1:
/*调用冒泡排序(升序)*/
break;
case 2:
/*调用选择排序(降序)*/
break;
default:
printf("input error!\n");
}
printf("排序后:\n");
for(i=0;i<20;i++)
printf("%d ",a[i]);
}
选择排序
假定选一个最小的,依次把后面的数与它进行比较。每进行一轮比较,就要找出一个最小的数。
第一轮比较,将最小的数放在第一个位置。
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环。
冒泡排序
依次比较相邻两个数,小数放前,大数放后。
第一轮比较,则得到最后一个位置是所有数中的最大的一个数。 展开
展开全部
void bubble_sort(int a[], int N) /*冒泡排序,N是数组a的长度*/
{int i,j,t;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void select_sort(int a[], int N) /*选择排序,N是数组a的长度*/
{int i,j,k,t;
for(i=0;i<N-1;i++)
{k=i
for(j=i+1;j<N;j++)
if(a[j]<a[k])k=j;
t=a[i];a[i]=a[k];a[k]=t;
}
case 1:
bubble_sort(a,20);
break;
case 2:
select_sort(a,20);
break;
{int i,j,t;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void select_sort(int a[], int N) /*选择排序,N是数组a的长度*/
{int i,j,k,t;
for(i=0;i<N-1;i++)
{k=i
for(j=i+1;j<N;j++)
if(a[j]<a[k])k=j;
t=a[i];a[i]=a[k];a[k]=t;
}
case 1:
bubble_sort(a,20);
break;
case 2:
select_sort(a,20);
break;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询