首页 > 软件 > 一个函数实现冒泡排序两个参数,一个是排序的数组另一flag,当福flag=0是实现由小到大当=1时实现由大到小

一个函数实现冒泡排序两个参数,一个是排序的数组另一flag,当福flag=0是实现由小到大当=1时实现由大到小

软件 2023-04-28

用数组作函数参数,定义一个实现冒泡排序的函数,在主函数中完成数据的输入和输出.

c语言的代码如下:

#include

voidBubble_Sort(int num[50],int n){//传入数组和数组的大小,冒泡排序函数
int i,j,temp;
for(i=0;ifor(j=0;jif(num[j]>num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}

}
}

}

int main(){ //主函数
int num[50];
int n,i;
scanf("%d",&n);
for(i=0;iscanf("%d",&num[i]); //输入数据
}
Bubble_Sort(num,n); //调用函数
for(i=0;iprintf("%d ",num[i]); //输出
}
return 0;

}

扩展资料

其他排序算法

1、插入排序

插入排序:已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、b[2]、……b[m],需将二者合并成一个升序数列。首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值;

若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来a[x]的位置这就完成了b[1]的插入。b[2]~b[m]用相同方法插入。(若无数组a,可将b[1]当作n=1的数组a)

2、希尔排序

由希尔在1959年提出,又称希尔排序(shell排序)。已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。发现当n不大时,插入排序的效果很好。

首先取一增量d(d

参考资料来源:百度百科-排序

兰州大学C语言程序通过定义函数实现冒泡排序过程?

这个问题我大学考试的时候也遇到过:

关于将冒泡排序过程单独写成一个函数,再在主函数中通过调用该函数实现对任意输入的多个数据(数据个数不超过100个)进行排序,并输出排序结果。

答案如下:

#include

//冒泡排序

void bubble_sort(int a[],int n);

//输出排序

void output(int a[], int n);

int main()

{

int number[100],count=0;

char y;

printf("请输入任意个数,按回车键结束\n");

do

{

scanf("%d",&number[count++]);

}while((y=getchar()) != '\n');// 这里用来判断是否输入了回车

bubble_sort(number,count);

output(number,count);

return 0;

}

答案过程太多了,我只写了一半,剩余的一半在这里!

兰州大学C语言程序通过定义函数实现冒泡排序过程

编写一个函数对一维数组进行冒泡排序

int BubbleImprovedSort(int a[], int len) { int i, j, temp, CompareNum=0; int exchange; // 交换标志,若某趟排序中所有元素位置未发生交换则说明排序完成 for(i=0; i a[j+1]) // 将较大的值放到后面 { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; e

设计一个函数修改冒泡排序过程以实现双向冒泡排序

void DblPPSort(int L[],int low,int high) { int i,j,fini = 0; while (low < high) { fini = 1; for (i = low; i<=high; i++) if (L[i] > L[i+1]) { L[0] = L[i]; L[i] = L[i+1]; L[i+1] = L[0]; fini = 0; } if (fini) break; high--; for (i = high; i>=low; i--) if (L[i] > L[i+1]) { L[0] = L[i]; L[i] = L[i+1]; L[

通过定义函数实现冒泡排序过程,

提供一个C语言代码供参考

#include
//冒泡排序
voidbubble_sort(inta[],intn);
//输出排序
voidoutput(inta[],intn);
intmain()
{
intnumber[100],count=0;
chary;
printf("请输入任意个数,按回车键结束\n");
do
{
scanf("%d",&number[count++]);
}while((y=getchar())!='\n');//这里用来判断是否输入了回车
bubble_sort(number,count);
output(number,count);
return0;
}

voidbubble_sort(inta[],intn)//n为数组a的元素个数
{
inti,j,temp;
for(j=0;jfor(i=0;i{
if(a[i]>a[i+1])//数组元素大小按升序排列
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
voidoutput(inta[],intn)
{
inti;
for(i=0;i{
printf("%d",a[i]);
}
}

标签:信息技术 编程 函数 冒泡排序 编程语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18