重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

冒泡排序函数的c语言 冒泡排序c语言函数调用

c语言冒泡排序

#include stdio.h

成都创新互联公司是网站建设技术企业,为成都企业提供专业的成都做网站、网站建设、外贸营销网站建设,网站设计,网站制作,网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制适合企业的网站。十余年品质,值得信赖!

#include string.h

struct student

{

char code[20];

char name[20];

int  age;

char adress[30];

}stu[3];

int main( void )

int i, j;

struct student temp;

for( int k = 0; k  3; k++ ){

printf( "please input code%d:\n ", k + 1 );

scanf( "%s", stu[k].code );

scanf( "%s", stu[k].name );

scanf( "%d", stu[k].age );

scanf( "%s", stu[k].adress );

}

for( i = 0; i  3-1; i++ ){

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

if( strcmp( stu[i].code, stu[j].code)   0 ){ 

temp = stu[j];

stu[j] = stu[i];

stu[i] = temp;

}

}

printf( "排序成功!\n" );

for( i = 0; i  3; i++ ){

printf( "%s\t", stu[i].code );

printf( "%s\t", stu[i].name );

printf( "%d\t", stu[i].age );

printf( "%s\n", stu[i].adress );

}

return 0;

}

冒泡排序法C语言解释

既然要用外行的话来回答,我就打个简单的比喻吧。

【比喻】

假如你是体育老师,你前面有一排随机站立的学生,10个,高矮不一。如果你要用冒泡排序的思路来让他们从低到高来排队,你可以这样。

第一遍:

从左往右,第一个跟第二个比较,高的那么换到右边,接着第2个跟第3个比较,高的再换到右边。这样以此类推,第一遍做完后,你能保证最高的那个被移动到了队列最后。比如说姚*明同学。

第二遍:

如果我是体育老师,姚*明可以去玩手机了(呵呵),因为,第一轮已经能保证他是最高的,且已经站到最后了。那么我只要对前9位同学,把第一遍的动作再做一遍,那么你就可以保证找出第2高的同学,移动到姚*明左边了。一次类推。

【短评】

所谓冒泡,就是模拟池塘里的小气泡。你可以假定小的往上跑的快,大的跑的慢。那么水底到水面上就形成了一串大小不同的泡泡。

【截图注释】

bubble_sort(A)//函数名叫冒泡排序,需要传入一个数组A作为参数

{

for(

i=1

to

N-1)//10个人,其实排9轮就好了,最后一轮就一个人不用排

{

haschang=false;//用一个逻辑性变量记录排序过程中是否有数据交换,开始为false

for(j=1

to

N-i)//每一轮要排序的人数是递减的,

i是递增,所以每一次内循环N-i递减

{

if(A[j]A[j+1])//如果A的第j个元素比后面那个大,就交换位置

{

temp=A[j];//先把A[j]做个备份

A[j]=A[j+1];//然后把A[j+1]装到A[j]中

A[j+1]=temp;//最后把原来备份的temp

放到A[j+1]

实现交换

haschange=true;//发生了数据交换,修改标识。

}

}

}

楼主好运。

C语言冒泡排序

vc 6.0运行通过-原创

#include "stdio.h"

#include "string.h"

#include "conio.h"

#define N 5

void main()

{

char *p[N]={"Java","Vi","C","D","Ada"};

char *ptemp;

int i,j;

printf("before arrangement:\n");

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

printf("p+%d-%s\n",i,p[i]);

printf("\n");

for(j=0;j=N-2;j++)

{

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

{

if(strcmp(p[i],p[i+1])0) // *p[i] 表示第i个字符串的第一个字母

{ptemp=p[i];p[i]=p[i+1];p[i+1]=ptemp;}

}

}

printf("after arrangement:\n"); //加 );

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

printf("p+%d-%s",i,p[i]);

getch(); // 要么改为 getchar(); 要么加头文件 "conio.h"

}

C语言的冒泡排序是什么?求解释

你好,很高兴为你解答

所谓冒泡排序即:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

代码为:

void sort(float a[],int n)

{

for(int i=1;in;i++)//第1到n-1趟

for(int j=0;jn-1;j++)//相邻两个数排序

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

swap(a[j],a[j+1]);//swap为交换两个数的值的函数(这里省略没有给出)

}

不懂追问我,满意请采纳,谢谢

祝愉快

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

冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。基本思想及举例说明

冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较就,选出最大的数;经过第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语言函数调用
当前地址:http://cqcxhl.com/article/hhiedp.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP