nnpc.net
当前位置:首页 >> 冒泡排序C语言流程图 >>

冒泡排序C语言流程图

void bubbleSort(int arr[],int count){ int i = count, j; int temp; while(i >0) { for(j =0; j < i -1; j++) { if(arr[j]> arr[j +1]) { temp = arr[j]; arr[j]= arr[j +1]; arr[j +1]= temp; } } i--; }}n个数的数列,每次比较相邻两个数,若二者顺序反了就调转过来,一直进行到数列最后一个元素,这时候最后一个元素已经得到其最终位置,对前面n-1的数的子序列重新进行上述比较交换过程,直到排列好第一个元素.

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序

第一 第二5261个for循环不对 应该用for(i=0;i<6-j;i++)第二 你判断也不对,照你的判断,t=a[i];a[i+1]=a[i] ;a[i+1]=t;a[i+1]被覆盖掉了,不再有a[i+1]这个值还有,你4102的冒泡排序是1653最好是用大于,你要小于的话,大数就到前面了,小数沉下内

#include struct number { int num; struct number *next; }; void main() { struct number *head; struct number *p1,*p2,*p,*p3,*p4; int n=0,m,i,j; p1=p2=(struct number *)malloc(sizeof(struct number)); printf("\nWang jianfei 060806110006\n\n\n"); printf("

main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d,",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=1;i<11;i++) printf("%5d,",a[i] ); printf("\n"); }

i和t都表示循环次数的变量,t是用于临时交换的变量;for(i=0;i<N-1;i++)和for(j=0;j<N-1-i;j++)都是循环次数;冒泡排序有一个口诀: 一组数据来排序,两两相比小靠前;外层循环N-1,内层循环N-1-i.

#include #define maxe 20 typedef char keytype; typedef char infotype[10]; typedef struct { keytype key; infotype data; }rectype; void bubblesort(rectype r[],int n) { int i,j,k; rectype temp; for(i = 0; i i;i--) if(r[j].key 评论0 0 0

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

虽然我也觉得分少了点,但是闲着无事,也就帮你写了一个个,你自己看着调调吧,加入你自己的想要的一些东西.#include"stdio.h" void f1(int *x,int n) { int i,j,temp; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) if(x[j]<x[i]) { temp=x[j]; x[j]=x[i]; x[i]=temp; } } }

还是自己看看数组这样对于多数的比较 存储很有利 单个的用自己定义的很麻烦实现冒泡 前面部分你自己写,我只给出冒泡的主体部分 int i; //生成的数的个数 int a[10]={0}; //定义个10位数的int型数组存放生成的数 int temp; //定义个临时变量

网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com