初学者。求一些冒泡排序法的例子
如题。。求一些例子。不用太深奥的。谢谢了
[解决办法]
for (i=0;i<n-1;i++) {
for (j=i+1;j<n;j++) {
if (d[i]>d[j]) {
t=d[i];d[i]=d[j];d[j]=t;
}
}
}
[解决办法]
赵老师貌似说错了。你的不是冒泡了。很像选择了哦。
#include<stdio.h>void bubblesort(int r[],int n) { /*elements are stored in r[1] to r[n]*/ int i,j,flag; int temp; flag=1; i=1; while((i<n)&&(flag==1)) /*外循环控制排序的总趟数*/ { flag=0; for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/ if(r[j]<r[j-1]) /*相邻元素进行比较,若逆序就交换*/ { flag=1; temp=r[j]; r[j]=r[j-1]; r[j-1]=temp; } i++; }} /*bubblesort*/ void show(int r[] , int n){ /*elements are stored in r[1] to r[n]*/ int i; for(i=1;i<=n;i++) printf(" %d ",r[i]); printf("\n"); }void main(){ int a[9201],i; for(i=0;i<9201;i++) a[i]=9201-i; //show(a,100000); bubblesort(a,9200); show(a,9200);}
[解决办法]
这个够简单...
#include <stdio.h>int main(void) { int i,j; int a[10]={8,6,4,2,0,9,7,5,3,1}; for(i=0;i<9;i++) for(j=0;j<10-i-1;j++) if(a[j]>a[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } for(i=0;i<10;i++) printf("%d ",a[i]); return 0;}