求填空 自定义函数,用冒泡法/选择法实现对一维数组的升序/降序排列..

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]);

}

选择排序

假定选一个最小的,依次把后面的数与它进行比较。每进行一轮比较,就要找出一个最小的数。

第一轮比较,将最小的数放在第一个位置。

然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环。

冒泡排序

依次比较相邻两个数,小数放前,大数放后。

第一轮比较,则得到最后一个位置是所有数中的最大的一个数。
展开
 我来答
听不清啊
高粉答主

2016-05-09 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
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;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式