日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]快速排序:冒泡排序的一種改進(jìn)排序方法 基本思想:通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小, 然后再按次方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排

快速排序:冒泡排序的一種改進(jìn)排序方法

基本思想:通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,

然后再按次方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列 。

??????? “快速排序法”使用的是遞歸原理,下面我結(jié)合一個(gè)例子來說明“快速排序法”的原理。首先給出一個(gè)數(shù)組

{53,12,98,63,18,72,80,46, 32,21},先找到第一個(gè)數(shù)--53,把它作為中間值,也就是說,要把53放

在一個(gè)位置,使得它左邊的值比它小,右邊的值比它大。{21,12,32, 46,18,53,80,72,63,98},這樣

一個(gè)數(shù)組的排序就變成了兩個(gè)小數(shù)組的排序--53左邊的數(shù)組和53右邊的數(shù)組,而這兩個(gè)數(shù)組繼續(xù)用同樣的方式

繼續(xù)下去,一直到順序完全正確。

結(jié)合理論知識整理下幾種實(shí)現(xiàn)快速排序的算法,可以提供參考的,不足之處,還請多指教!

/*方法一:*/ 
int sort(int *array, int left, int right)
{
	int i, j, tmp;
	
	i=left;
	j=right;
	tmp = array[left];
	while(i=tmp)
		{
			j--;
		}
		if(i
/*方法二:*/ 
void QuickSort2(int *array, int min, int len)
{
	int i, j, tmp;
	
	i = min;
	j = len;
	if(i=tmp)
			{
				j--;
			}
			if(i
/*方法三*/ 
void QuickSort3(int *array, int min, int len)
{
	int i,j,tmp;
	
	if(min>len)
	{
		return;
	}
	i = min;
	j = len;
	while(i!=j)
	{
		tmp = array[i];
		while(itmp)
		{
			j--;
		}
		if(i
提供了測試程序代碼,驗(yàn)證下是否正確。
#include
#include
#include

void PrintArray(int *array)
{
	int i;
	for(i=0; i<10; i++)
		printf("%d ", array[i]);
	printf("n");
}

int main(int argc, char **argv)
{
	int array[10]={7,2,4,1,3,8,9,6,5,0};
	PrintArray(array);
	
	//QuickSort1(array, 0, 10);
	//QuickSort2(array, 0, 10);
	QuickSort3(array, 0, 10);
	PrintArray(array); 
	return 0;
} 
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉