资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

冒泡排序函数c语言代码,冒泡排序c语言函数调用

c语言冒泡排序法代码

冒泡法排序的原理是相邻的两个数进行比较,现在以“输入10个数,对它们按小到大的顺序排序”这道题,来展示冒泡法排序。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站制作、西安网络推广、小程序设计、西安网络营销、西安企业策划、西安品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供西安建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

#include

int main(){

int a[10];

int i,j,t;

printf (" input 10 numbers: \n");

for (i=0;i<10;i++)

scanf("%d",a[i] );

printf ("\n");

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if (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;i<10;i++)

printf( "%d",a[i]);

printf("\n");

return 0;

}

C语言中选择排序法和冒泡排序法代码。

选择排序:

void select_sort(int a[],int n)        //传入数组的要排序的元素个数

{int i,j,min,t;

for(i=0;in-1;i++)

{  min=i;      //min:当前最小值下标

for(j=i+1;jn;j++)        //扫描余下的部分

if(a[min]a[j])        //若有其它元素更小,就记录其下标

min=j;

if(min!=i)        //保若最小值不在排序区首位,就换到首位

{t=a[min]; a[min]=a[i]; a[i]=t;}

}

}

冒泡排序:

void bubble_sort(int a[], int n)        //传入数组的要排序的元素个数

{ int i, j, t;

for (j=0; jn-1; j++)        //n个元素比较n-1轮

for (i= 0; in-1-j;i++)   //比较相信的两个数

if(a[i]a[i+1])          //若大小顺序不符,就交换

{t=a[i];  a[i]=a[i+1]; a[i+1]=t;

}

求 c语言选择排序法和 冒泡排序法代码?

冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`arr[n],arr[n+1]`),如果前面的数大于后面的数(`arr[n] arr[n+1]`),那么交换两个元素的位置,把大的数往后移动。这样依次经过一轮比较以后,最大的数将会被交换到最后的位置(arr[n-1])。

C语言实现Bubblesort:

void bubblesort(int a[], int m)

{

int i,j;

int tmp;

int flag = 0;  //设定标志,如果第一次循环比较时没有发生交换,则说明数组是升序排序,不用排序,提前结束循环。

for(i = 0; i  m; i++)  //外层循环控制循环次数

{

for(j = 0; j  m-1-i; j++)    //内层循环控制每次循环里比较的次数。

{

if(a[j]  a[j+1])

{

tmp = a[j];

a[j] = a[j+1];

a[j+1] = tmp;

flag = 1;

}

}

if(0 == flag)

{

printf("No Sort\n");

break;

}

}

}

选择排序法的过程是,通**过比较,选择出每一轮中最值元素,然后把他和这一轮中最最前面的元素交换**,所以这个算法关键是要记录每次比较的结果,即每次比较后最值位置(下标)。

C语言实现(Selectionsort)

void selectionsort(int a[],int m)

{

int i,j;

int k;

int tmp;

for(i = 0; i  m-1; i++)//控制循环次数,n个数需要n-1次循环

{

k = i;

for(j = i+1; j  m ; j++)

{

if(a[j]  a[k])

k = j;

}

//i不等于k是就证明a[i]不是最小的,

//i等于k时证明a[i]就是本轮比较过程中最小的值

if(i != k)

{

tmp = a[i];

a[i] = a[k];

a[k] = tmp;

}

}

}

C语言冒泡排序法代码

冒泡排序每一趟排序把最大的放在最右边。

比如:

87 12 56 45 78

87和12交换:12 87 56 45 78

87和56交换:   56 87 45 78

87和45交换:      45 87 78

87和78交换:         78 87

到此第一趟排序结束,接下来的每一趟排序都是这样。

#includestdio.h

void Print(int *num, int n)

{

int i;

for(i = 0; i  n; i++)

printf("%d ", num[i]);

puts("\n");

return;

}

void Bubble_Sort(int *num, int n)

{

int i, j;

for(i = 0; i  n; i++)

{

for(j = 0; i + j  n - 1; j++)

{

if(num[j]  num[j + 1])

{

int temp = num[j];

num[j] = num[j + 1];

num[j + 1] = temp;

}

Print(num, n);

}

}

return;

}

int main()

{

int num[8] = {87, 12, 56, 45, 78};

Bubble_Sort(num, 5);

return 0;

}

冒泡排序 c语言 代码

void BubbleSort(int *nArry, int nCount)

{

for(int i = 0; i nCount; i++)

{

for(int j = 0; j nCount - i -1; j++)

{

if(nArry[j + 1] nArry[j])

{

int nTmp = nArry[j];

nArry[j] = nArry[j + 1];

nArry[j + 1] = nTmp;

}

}

}

}

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;

}

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


当前名称:冒泡排序函数c语言代码,冒泡排序c语言函数调用
文章位置:http://www.cdkjz.cn/article/hddppe.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220