冒泡排序函数的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语言函数调用
文章链接:https://www.cdcxhl.com/article18/hhiedp.html

成都网站建设公司_创新互联,为您提供动态网站关键词优化面包屑导航外贸网站建设微信小程序网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司