一,冒泡排序法
代码演示:
#include<stdio.h>
void printLink(int *arry,int len) //遍历打印数组所有数据
{
int i;
for(i = 0 ; i<len ; i++){
printf("%d ",*(arry++) );
// arry++;
}
putchar('\n');
}
int main(){
int i,j;
int arry[] = {12,8,13,9,6,18,20,14,88,100,11,17,6};
int len = sizeof(arry)/sizeof(arry[0]);
int bei;
printLink(arry,len); //遍历打印数组所有数据
for(i = 0 ; i < len-1 ; i++ ){ //冒泡排序的程序逻辑
for(j = 0 ; j < len-1-i ; j++ ){
if(arry[j] > arry[j+1] ){ //从小到大顺序排序
bei = arry[j];
arry[j] = arry[j+1];
arry[j+1] = bei;
}
}
}
printLink(arry,len); //遍历打印数组所有数据 ,排完顺序
return 0;
}
运行结果
./a.out
12 8 13 9 6 18 20 14 88 100 11 17 6
6 6 8 9 11 12 13 14 17 18 20 88 100
二,选择排序法
include<stdio.h>
void printLink(int *arry,int len)
{
int i;
for(i = 0 ; i<len ; i++){
printf("%d ",*(arry++) );
// arry++;
}
putchar('\n');
}
int main(){
int i,j;
int arry[] = {12,8,13,9,19,51,100,13};
int len = sizeof(arry)/sizeof(arry[0]);
int bei;
printLink(arry,len);
for(i = 0 ; i < len-1 ; i++ ){ //选择排序法的逻辑
for(j = 0 ; j < len-1-i ; j++ ){
if(arry[i] > arry[j+i+1] ){
bei = arry[i];
arry[i] = arry[j+i+1];
arry[j+i+1] = bei;
}
}
}
printLink(arry,len); //打印排号序的数组
return 0;
}
~
~
~
运行结果
./a.out
12 8 13 9 19 51 100 13
8 9 12 13 13 19 51 100