“桶排序”
定義空桶,放進數據,按桶裏的個數輸出。
//"桶排序",排給定數組
#include"stdio.h"
int main()
{
int a[10]={3,3,5,6,5,3,2,1,9,9};//待拍數組
int apai[10];//定義桶
for(int i=0;i<10;i++)
{
apai[i]=0;
}
//放進桶裏
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(a[i]==j)
{
apai[j]++;
}
}
}
//輸出
for(int i=0;i<10;i++)
{
for(int j=0;j<apai[i];j++)
{
printf("%d ",i);
}
}
}
//"桶排序",排輸入數組。(這裏只能輸入 0 到 9)
#include"stdio.h"
int main()
{
int t;//用於輸入。
int apai[10];//定義桶
for(int i=0;i<10;i++)
{
apai[i]=0;
}
for(int i=0;i<10;i++)
{
scanf("%d",&t);
apai[t]++;
}
for(int i=0;i<10;i++)
{
for(int j=0;j<apai[i];j++)
{
printf("%d ",i);
}
}
}
冒泡排序
比較鄰居,比較後移動,每次都會比較出一位來。
//"桶排序",排輸入數組。(這裏只能輸入 0 到 9)
#include"stdio.h"
int main()
{
int a[10]={8,3,3,5,4,8,9,5,9,3};
for(int i=0;i<9;i++)
{
for(int j=0;j<9-i;j++)
{
if(a[j]<a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
快速排序
//快速排序
#include"stdio.h"
void kuaipai(int *a,int left,int right)
{
if(left>=right)
{
return;
}
int guiweishu=a[left];
int L=left,R=right;
while(L<R)
{
while(a[R]>guiweishu&&L<R)
{
R--;
}
while(a[L]<=guiweishu&&L<R)
{
L++;
}
if(L<R)
{
int temp=a[R];
a[R]=a[L];
a[L]=temp;
}
}
a[left]=a[L];
a[L]=guiweishu;
kuaipai(a,left,L-1);
kuaipai(a,L+1,right);
}
int main()
{
int a[10]={8,3,3,5,4,8,9,5,9,3};
kuaipai(a,0,9);
for(int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
其它排序
除了這幾種方法之外,還有很多排序的方法。如計數排序,基數排序,插入排序,合併排序,堆排序等等。這裏只寫了一些簡單的排序。其他排序會陸續更新。