国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)結(jié)構(gòu) | 希爾排序法】

這篇具有很好參考價(jià)值的文章主要介紹了【數(shù)據(jù)結(jié)構(gòu) | 希爾排序法】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

思路

希爾排序法又稱縮小增量法。希爾排序法的基本思想是:先選定一個(gè)整數(shù),把待排序文件中所有記錄分成個(gè)組,所有距離為的記錄分在同一組內(nèi),并對(duì)每一組內(nèi)的記錄進(jìn)行排序。然后,取,重復(fù)上述分組和排序的工作。當(dāng)?shù)竭_(dá)=1時(shí),所有記錄在統(tǒng)一組內(nèi)排好序。

【數(shù)據(jù)結(jié)構(gòu) | 希爾排序法】,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),排序算法,算法

所以,由上述我們可知:希爾排序,是多組的直接插入排序,如果不了解直接插入排序,可參考這篇文章:直接插入排序


所以,先選定一個(gè)gap值,讓其分組再排序。
但是,最后gap的值總歸會(huì)等于1,完成最后的排序,只不過此時(shí)的數(shù)組基本趨近于有序,此時(shí)的直接插入的時(shí)間復(fù)雜度就比較低。

但是要實(shí)現(xiàn)希爾排序,gap應(yīng)該怎么設(shè)定呢?

首先要確保,最后一組的gap必須是1,所以我們這樣規(guī)定:gap = gap / 3 + 1

這樣就可以保證最后一個(gè)的gap總是1

ShellSort

【數(shù)據(jù)結(jié)構(gòu) | 希爾排序法】,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),排序算法,算法文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-798535.html

//希爾排序
void ShellSort(int* a, int n)
{
	int gap = n;
	//預(yù)排序
	while (gap > 1)
	{
		//單趟排序
		gap = gap / 3 + 1;
		for (int i = 0; i < n - gap; i++)
		{
			int end = i;
			int tmp = a[end + gap];
			while (end >= 0)
			{
				if (tmp < a[end])
				{
					a[end + gap] = a[end];
					end -= gap;
				}
				else
					break;
			}
			a[end + gap] = tmp;
		}
	}
	//直接插入排序
	//InsertSort(a, n);
}

到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu) | 希爾排序法】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包