选择排序
通过选择最大值的方法,依次将最大,第2大,第3大……的数挑选出来,顺序调换到数组的第1个,第2个,第3个……元素中。
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int num[10] = {23,56,2,5,856,45,12,456,89,1};
int i = 0;
int j;
for( i; i<9; i++){
for( j=i+1; j<10; j++){
if( num[i]>num[j] ){
int temp;
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
for( i=0; i<10; i++)
printf("%d ",num[i]);
}
冒泡排序
每趟顺序比较相邻的两个数,如果两数逆序(及由高到低),则交换两数,最多进行 n-1 趟,即完成 n 个数从小到大顺序排列。
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int num[10] = {23,56,2,5,856,45,12,456,89,1};
int i,j;
for( j=0; j<10; j++){
for( i=0; i<10-j-1; i++){
if( num[i]>num[i+1] ){
int temp;
temp = num[i];
num[i] = num[i+1];
num[i+1] = temp;
}
}
}
for( i=0; i<10; i++)
printf("%d ",num[i]);
}