/*经典C语言排序算法*/
/*对键盘输入的十个数从小到大排序*/
/*冒泡排序(buddle sort)*/
main()
{
int a[11];
int i,j,t;
clrscr();
printf("input 10 numbers :/n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("/n");
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers:/n");
for(i=1;i<11;i++)
printf("%d ",a[i]);
getch();
}
/*选择排序(select sort)*/
#include<stdio.h>
main()
{
int num[10];int i,j,temp;
printf("Please input 10 numbers:/n");
for(i=0;i<10;i++) scanf("%d",&num[i]);
for(i=0;i<10;i++)
for(j=i;j<10;j++)
if(num[j]<num[i])
{temp=num[i];
num[i]=num[j];
num[j]=temp;
}
printf("The sorted numbers:/n");
for(i=0;i<10;i++)
printf("%4d",num[i]);
}
/*插入法排序*/
#define N 10
#include"stdio.h"
main()
{ int i,j,k,t,a[N];
clrscr();
printf("Please input %d numbers:/n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
{if(a[j]>a[i])
{t=a[i];
for(k=i;k>=j;k--)
a[k]=a[k-1];
a[j]=t;
}
}
}
printf("small to big order:/n");
for(i=0;i<N;i++)
printf("%-2d",a[i]);
printf("/n");
getch();
}
/*快速排序*/
#include"stdio.h"
void quickSort(int a[],int left,int right);
void main()
{
int a[8]={8,2,6,12,1,9,5,3};
int i;
quickSort(a,0,7);
/*排好序的结果*/
for(i=0;i<8;i++)
printf("%4d",a[i]);
}
void quickSort(int a[],int left,int right)
{
int i,j,temp;
i=left;
j=right;
temp=a[left];
if(left>right)
return;
while(i!=j)/*找到最终位置*/
{
while(a[j]>=temp && j>i)
j--;
if(j>i)
a[i++]=a[j];
while(a[i]<=temp && j>i)
i++;
if(j>i)
a[j--]=a[i];
}
a[i]=temp;
quickSort(a,left,i-1);/*递归左边*/
quickSort(a,i+1,right);/*递归右边*/
}