调用函数冒泡排序c语言 编写函数用冒泡排序法
C语言编程——冒泡排序法。要求:由主函数调用排序子函数,对n个整数进行从小到大的排序,谢了
#includestdio.h
void sort(int a[],int n)
{
int i;
int j;
for(i=1; in; i++) //n个程序 排n-1次
{
for(j=0; jn-i; j++)
{
if(a[j]a[j+1]) //从小到达,前面的比后面的大,则互换。
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main()
{
int a[10]={ 1,3,5,7,9,2,4,6,8,10} ;
sort(a,10);
int i;
for(i=0; i10; i++)
{
printf("%d ",a[i]);
}
getchar();
return 0;
}
C语言冒泡排序。
#includestdio.h
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers:\n");
for(i=0; i10; i++)
scanf("%d",a[i]);
for(j=0; j9; j++) /*进行9次循环 实现9趟比较*/
for(i=0; i9-j; i++) /*在每一趟中进行9-j次比较*/
if(a[i]a[i+1]) /*相邻两个数比较,想降序只要改成a[i]a[i+1]*/
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers:\n");
for(i=0; i10; i++)
printf(" %d",a[i]);
}
扩展资料:
冒泡排序算法的运作
1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。
3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。
4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。
简单的表示
#include stdio.h
void swap(int *i, int *j)
{
int temp = *i;
*i = *j;
*j = temp;
}
int main()
{
int a[10] = { 2,1,4,5,6,9,7,8,7,7} ;
int i,j;
for (i = 0; i 10; i++)
{
for (j = 9; j i; j--)//从后往前冒泡
{
if (a[j] a[j-1])
{
swap(a[j], a[j-1]);
}
}
}
for (i = 0; i 10; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
参考资料来源:冒泡排序-百度百科
1. 编写冒泡排序和选择排序的程序,主函数中编写菜单调用排序函数。C语言
//C语言示例代码如下
#include stdio.h
#define N 10
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j; //j表示趟数,i表示第j趟两两比较的次数
int tmp; //临时变量
for(i=0; in-1; i++)
for(j=0; jn-1-i; j++)
{
if(a[j] a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
//选择排序算法,按从小到大顺序
void select_sort(int *array,int n)
{
int i,j,k;
int tmp;
for(i=0; in-1; i++)
{
k=i; //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
for(j=i+1; jn; j++)
{
if(array[k] array[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
k=j;
}
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
if(k != i)
{
tmp=array[k];
array[k]=array[i];
array[i]=tmp;
}
}
}
int main()
{
int arr[N];
int i;
printf("输入数组元素: ");
for(i=0; iN; i++)
scanf("%d",arr[i]);
bubble_sort(arr,N); //调用冒泡排序函数
printf("输出排序后的数组元素: ");
for(i=0; iN; i++)
printf("%d ",arr[i]);
printf("\n输入数组元素: ");
for(i=0; iN; i++)
scanf("%d",arr[i]);
select_sort(arr,N); //调用选择排序函数
printf("输出排序后的数组元素: ");
for(i=0; iN; i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 调用函数冒泡排序c语言 编写函数用冒泡排序法
本文地址: https://pptw.com/jishu/1529.html