一、冒泡排序:
#include<stdio.h>
void maopao(int a[],int len)
{
int i;
int j;
for(i=0;i<9;i++)//只运行8次
{
for (j= 0; j <9-1-i; j++)
{
/* code */
if(a[j+1]>a[j])
{
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
}
void Print(int a[],int len)
{
for(int i=0;i<len;i++)
{
printf("%d ",a[i]);
}
}
int main()
{
int a[9]={1 ,2 ,5 ,8 ,4 ,9 ,3 ,7 ,6};
maopao(a,9);
Print(a,9);
return 0;
}
二、选择排序:
#include<stdio.h>
void xuanze(int a[],int len)
{
int i;
int j;
for(i=0;i<len;i++)
{
int minPos=i;
for(j=i;j<len;j++)
{
if(a[j]>a[minPos])
{
minPos=j;
}
}
int temp=a[minPos];
a[minPos]=a[i];
a[i]=temp;
}
}
void Print(int a[],int len)
{
for(int i=0;i<len;i++)
{
printf("%d ",a[i]);
}
}
int main()
{
int a[9]={1 ,2 ,5 ,8 ,4 ,9 ,3 ,7 ,6};
xuanze(a,9);
Print(a,9);
return 0;
}
三、插入排序
#include<stdio.h>
void charu(int a[],int len)
{
int current;
for ( int i = 0; i < len-1; i++)
{
/* code */
current=a[i+1];
while (i>=0 && current<a[i])
{
/* code */
a[i+1]=a[i];
i--;
}
a[i+1]=current;
}
}
void Print(int a[],int len)
{
for(int i=0;i<len;i++)
{
printf("%d ",a[i]);
}
}
int main()
{
int a[9]={1 ,2 ,5 ,8 ,4 ,9 ,3 ,7 ,6};
charu(a,9);
Print(a,9);
return 0;
}