C语言子函数冒泡排序 C语言冒泡排序

冒泡排序法C语言解释。

冒泡排序是一种最简单的排序方法,通过比较相邻的元素,若发生倒序,则交换,使最大值沉到最后。

创新互联公司是一家集网站建设,江阴企业网站建设,江阴品牌网站建设,网站定制,江阴网站建设报价,网络营销,网络优化,江阴网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

其空间复杂度为O(1),时间复杂度为O(n2)。冒泡排序是一种稳定的排序。

用于顺序或者链式存储结构,平均时间性能比直接插入差。当初始记录无序且n较大时,不宜采用此方法。

顺序表创建。

冒泡排序算法。

初始化flag为1表示数组无序,当数组无序并且数组长度大于1的时候,执行循环。

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语言编程——冒泡排序法。要求:由主函数调用排序子函数,对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语言的函数做冒泡法排序

太简单,懒得答,抄来的:

Bubble Sort(冒泡法)

最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。这个算法可实现如下。

Bubble Sort程序:

STL C++程序:(VC++6.0通过)

#include "stdafx.h"

#include "iostream.h"

templateclass T

class doit{

private:

int x,y;

T temp;

public:

doit(T* in,int count)

{

for(y=0;ycount-1;y++)

{

for(x=1;xcount-y;x++)

{

if((*(in+x))(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

};

int main()

{

double a[4]={1.1,1.3,1.9,2.2};

doitdouble d(a,4);

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

{

couta[i]endl;

}

return 0;

}

C语言程序:(TC 2.0通过)

void doit(float* in,int count)

{

int x;

int y;

float temp;

for(y=0;ycount-1;y++)

{

for(x=1;xcount-y;x++)

{

if((*(in+x))(*(in+x-1)))

{

temp=(*(in+x-1));

(*(in+x-1))=(*(in+x));

(*(in+x))=temp;

}

}

}

}

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语言冒泡排序

C语言冒泡排序法的排序规则:将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。初始 R[1..n]为无序区。第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key void sort(int *a,int len) {int i=0; int j; int t; for(i=0;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } int main(int argc, char *argv[]) { int a[10]={ -999,2,3,77,12,88,0,-8,99,100 }; int i=0; sort(a,10); for(i=0;i10;i++) { printf("%d ",a[i]); } return 0; }


标题名称:C语言子函数冒泡排序 C语言冒泡排序
转载来源:http://azwzsj.com/article/dooddep.html