1、 冒泡排序
#include<stdio.h>
#define N 9
int main(){
int a[N] = {2,1,3,4,5,7,8,9,6}, i,j,tmp,k,flag;
//int a[N] = {9,1,5,8,3,7,4,6,2}, i,j,tmp,k,flag;
flag=1;
for(i=0;i<N;i++)
printf("%d ", a[i]);
printf("\nbegin\n");
for(i=0;i<N&&(flag==1);i++){
flag=0;
for(j=N-1;j>=i;j--){
if(a[j]<a[j-1]){
tmp = a[j-1];
a[j-1] = a[j];
a[j] = tmp;
flag=1;
}
}
for(k=0;k<N;k++)
printf("%d ", a[k]);
printf("\n");
}
}
2、选择排序
#include<stdio.h>
#define N 9
int main(){
int a[N] = {2,1,3,4,5,7,8,9,6}, i,j,tmp,k,min;
for(i=0;i<N;i++)
printf("%d ", a[i]);
printf("\nbegin\n");
for(i=0;i<N-1;i++){
min = i;
for(j=i+1;j<N;j++){
if(a[min]>a[j]){
min = j;
}
}
if(i!=min){
tmp = a[min];
a[min] = a[i];
a[i] = tmp;
}
}
for(k=0;k<N;k++)
printf("%d ", a[k]);
printf("\n");
}
3、插入排序
#include "stdio.h"
#include "conio.h"
void insert_sort(int a[],int n)//待排序元素用一个数组a表示,数组有n个元素
{
int i,j,k;
int temp;
for (i=1; i<n; i++) //i表示插入次数,共进行n-1次插入
{
temp=a[i]; //把待排序元素赋给temp,temp在while循环中并不改变,这样方便比较,并且它是要插入的元素
j=i-1;
//while循环的作用是将比当前元素大的元素都往后移动一个位置
while ((j>=0)&& (temp<a[j])){
a[j+1]=a[j];
j--; // 顺序比较和移动,依次将元素后移动一个位置
}
a[j+1]=temp;//元素后移后要插入的位置就空出了,找到该位置插入
for(k=0;k<=5;k++)
printf("%d ",a[k]);
printf("\n");
}
}
void main(){
int array[]={2, 10, 4, 5, 1, 9},i=0;
insert_sort(array,6);
for(;i<=5;i++)
printf("%d ",array[i]);
getch();
}