问题:有十个数,要求从小到大排序
(1)方式一:冒泡法排序
#include <stdio.h>
int main() {
void ergodic(int array[]);
int i,j,temp,array[10]={9,3,1,7,3,2,5,8,10,6};
printf("排序前:");
ergodic(array);
for(j=0;j<9;j++){
for(i=0;i<9-j;i++){
if(array[i]>array[i+1]){
temp=array[i+1];
array[i+1]=array[i];
array[i]=temp;
}
}
}
printf("\n排序后:");
ergodic(array);
}
void ergodic(int array[]){
int i;
for(i=0;i<10;i++){
printf("%3d",array[i]);
}
}
(2)选择法排序
#include <stdio.h>
int main() {
void ergodic(int array[]);
int i,j,k,temp,array[10]={9,3,1,7,3,2,5,8,10,6};
printf("排序前:");
ergodic(array);
for(j=0;j<9;j++){
k=j;
for(i=j+1;i<10;i++){
if(array[i]<array[k])k=i;
}
temp=array[k];
array[k]=array[j];
array[j]=temp;
}
printf("\n排序后:");
ergodic(array);
}
void ergodic(int array[]){
int i;
for(i=0;i<10;i++){
printf("%3d",array[i]);
}
}