网站首页 > 文章中心 > 其它

c语言编写冒泡函数

作者:小编 更新时间:2023-10-19 07:21:16 浏览量:296人看过

C语言编写函数用冒泡法对数组中10个整数由大到小排序,并在主函数中调用

#include stdio.h

void fun(int *num)

{

int temp;

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

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

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

temp=num[j];

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

num[j+1]=temp;

}

void main()

fun(num);

C语言冒泡法

#includeiostream

using?namespace?std;

void?Sort(int?a[],int?n);

int?main()

int?i,n,a[1001];

cinn;

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

cina[i];

Sort(a,n);

couta[i]"?";

system("pause");

return?0;

void?Sort(int?a[],int?n)

int?i,j,x,flag;

flag=0;

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

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

{?

flag=1;

x=a[j];

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

a[j+1]=x;

if(flag==0)

break;?

【注意】上面那个数组下标是从1开始的,本人习惯从1开始

还有一种超好的排序方法,我一直用它:

#includealgorithm

int?n,i,a[10001];

sort(a+1,a+n+1);//默认是升序

用C语言编写函数,要实现快速排序算法或者冒泡法

冒泡法排序函数如下:

void bubble(int a[],int n)

{int i,j,t;

for(i=0;in-1;i++)/*共进行n-1轮*/

for(j=0;jn-1-i;j++)/*每轮在前n-i个数中比较*/

if(a[j]a[j+1]) /*若相邻元素逆序*/

{t=a[j]; a[j]=a[j+1];a[j+1]=t;}/*就交换*/

void sort(int *a, int left, int right)

if(left = right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/

return ;

int i = left;

int j = right;

int key = a[left];

while(i j) /*控制在当组内寻找一遍*/

while(i j key = a[j])

/*而寻找结束的条件就是,1,找到一个小于或者大于key的数(大于或小于取决于你想升

j--;/*向前寻找*/

a[i] = a[j];

/*找到一个这样的数后就把它赋给前面的被拿走的i的值(如果第一次循环且key是

a[left],那么就是给key)*/

while(i j key = a[i])

/*这是i在当组内向前寻找,同上,不过注意与key的大小关系停止循环和上面相反,

因为排序思想是把数往两边扔,所以左右两边的数大小与key的关系相反*/

i++;

a[j] = a[i];

a[i] = key;/*当在当组内找完一遍以后就把中间数key回归*/

sort(a, left, i - 1);/*最后用同样的方式对分出来的左边的小组进行同上的做法*/

sort(a, i + 1, right);/*用同样的方式对分出来的右边的小组进行同上的做法*/

/*当然最后可能会出现很多分左右,直到每一组的i = j 为止*/

C语言:写一函数,用"冒泡法"对输入的10个字符按由小到大顺序排列

以上就是土嘎嘎小编为大家整理的c语言编写冒泡函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章