簡單的排序方法

“桶排序”

定義空桶,放進數據,按桶裏的個數輸出。

//"桶排序",排給定數組

#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]);
	}
	
}


其它排序

除了這幾種方法之外,還有很多排序的方法。如計數排序,基數排序,插入排序,合併排序,堆排序等等。這裏只寫了一些簡單的排序。其他排序會陸續更新。

發佈了74 篇原創文章 · 獲贊 34 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章