排序C语言
//选择排序
#include <stdio.h> main() { int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b; for(i=0;i<=9;i++) { k=i; for(j=i+1;j<=9;j++) if(a[k]<a[j]) { k=j;//第一轮:1<3 k=1,a[k]=3;3<99 k=2,a[k]=99;99>1,99>4,99>7,99>6,选出最大值99;第二轮选出7,依次类推 } if(i!=k) { t=a[i];a[i]=a[k];a[k]=t; } for(b=0;b<=9;b++) { printf("%3d",a[b]);//显示每一轮的选择结果 } printf("\n"); } for(i=0;i<=9;i++) { printf("%4d",a[i]); } getchar(); }
//冒泡排序
#include <stdio.h> main() { int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b; for(i=0;i<=9;i++) { for(j=0;j<9-i;j++) if(a[j]>=a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } for(b=0;b<=9;b++) { printf("%d,",a[b]);//显示每一轮的排序结果 } printf("\n"); } for(i=0;i<=9;i++) { printf("%4d",a[i]); } getchar(); }
//冒泡排序内循环小于等于结果意外
#include <stdio.h> main() { int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b; for(i=0;i<=9;i++) { for(j=0;j<=9-i;j++) if(a[j]>=a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } for(b=0;b<=9;b++) { printf("%d,",a[b]);//显示每一轮的排序结果 } printf("\n"); } for(i=0;i<=9;i++) { printf("%4d",a[i]); } getchar(); }
//冒泡排序方法 排序过程显示 #include <stdio.h> int main() { int i,j,t,a[10]={526,36,2,369,56,45,78,92,126,54},v; //定义变量及数组为基本整型 for(i=0;i<=9;i++) for (j=i+1;j<10;j++) { if(a[i]>a[j]) //如果前一个数比后一个数大,则利用中间变量t实现两值互换 { t=a[i]; a[i]=a[j]; a[j]=t; } for(v=0;v<10;v++) printf("%5d", a[v]); //输出排序后的数组 printf("\n");} printf("排序后的顺序是:\n"); for(i=0;i<10;i++) printf("%5d", a[i]); //输出排序后的数组 printf("\n"); return 0; }