调用冒泡排序函数c语言 用c实现冒泡排序

C语言冒泡排序法代码冒泡排序是排序算法的一种 , 思路清晰,代码简洁,常被用在大学生计算机课程中 。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名 。这里以从小到大排序为例进行讲解 。基本思想及举例说明
冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移 。经过一轮比较就,选出最大的数;经过第2轮比较 , 就选出次大的数,以此类推 。下面以对 3 2 4 1 进行冒泡排序说明 。
1.这个算法用rand函数产生新的要排序的数据,与已有的有序数列中的数据依次比较,如果遇到比他大的数据,就从该数据开始,一直交换到末尾,达到一个插入的效果 。从而形成有序的数列 。
2.此外,只用rand函数并不能达到真正随机的效果 。如果要实现真正随机的效果,还要配合srand函数才行 。
3.具体代码如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("请输入一个种子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i)。
C语言简单冒泡法程序1、打开Visual stdio软件,在空项目里新建一个c语言程序空文件:
2、弹出的窗口选择C文件,将文件扩展名改为“.c”点击添加完成新建c文件 , 之后就可以编写程序了:
3、这里从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾,经过一轮的比较 , 就可以找到最大的元素,并将它移动到最后一个位置,然后依次类推直到数组的最后一个数比较完,最后输出结果;
4、最后需要执行程序,按下crtl F5弹出程序的执行结果 , 就可以看到排序后的结果了:
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]);
}
扩展资料调用冒泡排序函数c语言:
冒泡排序算法的运作
1、比较相邻的元素 。如果第一个比第二个大(?。┑饔妹芭菖判蚝齝语言,就交换调用冒泡排序函数c语言他们两个 。
2、对每一对相邻元素作同样的工作调用冒泡排序函数c语言,从开始第一对到结尾的最后一对 。这步做完后 , 最后的元素会是最大(?。┑氖?。
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; i10; i)
{
for (j = 9; ji; j--)//从后往前冒泡
{
if (a[j]a[j-1])
{
swap(a[j], a[j-1]);
}
}
}
for (i = 0; i10; i)
{
printf("%d\n", a[i]);
}
return 0;
}
参考资料来源调用冒泡排序函数c语言:冒泡排序-百度百科
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;
}
【调用冒泡排序函数c语言 用c实现冒泡排序】关于调用冒泡排序函数c语言和用c实现冒泡排序的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读