几种常见排序算法(c语言)
一、选择排序
二、冒泡排序
三、插入排序
四、快速排序
插入排序
插入排序基本流程如下图(动态图来源网络),属于一种比较稳定的排序算法,类比我们平时打扑克牌的时候,每拿一张牌就根据其大小插入到合适的位置;
代码实现:
#include <stdio.h>
#define N 10
/*交换函数*/
void change(int *x,int *y){
int a;
a=*x;
*x=*y;
*y=a;
}
void charu_sort(int a[]){
int i,j;
for(i=0;i<N;i++){
for(j=i;j>=0;j--)
if(a[j]>a[j+1])
change(&a[j],&a[j+1]);
}
printf("插入排序后:");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}
void main(){
int a[N]={12,2,42,11,21,423,22,33,111,123},i;
printf("排序前:");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
charu_sort(a);
}