c语言冒泡排序法函数代码 C语言冒泡排序代码

冒泡排序算法的C语言代码,要求有运行过程即每运行一步就输出一次结果

void del(int *a,int n)//冒泡

创新互联建站成立于2013年,是专业互联网技术服务公司,拥有项目网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元贡井做网站,已为上家服务,为贡井各地企业和个人服务,联系电话:13518219792

{

int i,j,k;

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

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

{ if(a[j]a[j+1])//如果你要从大到小排序就改为

{

k=a[j];

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

a[j+1]=k;

}

for( k=0;kn;k++)

printf("%d\t",a[k]);

printf("\n");

}

按照楼主要求更改后的函数

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语言 冒泡排序法的代码

#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语言选择排序法和 冒泡排序法代码?

冒泡排序法的具体实现方法是这样的,从数组的第一个元素`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语言的冒泡排序代码

main()函数修改如下:

int main()

{

int apk(int *);

int a[10];

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

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

apk(a);

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

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

return 0;

}

apk()函数修改如下:

int apk(int a[])

{

for (k=0;k9;k++)

for (i=0;i10-k;i++)

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

{

j=a[i];

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

a[i+1]=j;

}

}

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语言冒泡排序法函数代码 C语言冒泡排序代码
本文地址:http://scyanting.com/article/hieepj.html