欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

查找與排序

 查找和排序都是程序中經(jīng)常用到的算法

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供平和企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為平和眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

 一、查找

    查找分為:順序查找,二分查找、哈希表查找和二叉樹(shù)排序查找。

    哈希表和二叉樹(shù)查找的重點(diǎn)在于其數(shù)據(jù)結(jié)構(gòu)。哈希表的主要優(yōu)點(diǎn)是能夠在O(1)的時(shí)間查找某一元素,是效率最高的查找方式。其缺點(diǎn)是需要額外的空間來(lái)實(shí)現(xiàn)哈希表。

二、排序

    排序分為插入排序,交換排序,選擇排序歸并排序等。排序的這幾種方法的優(yōu)劣(額外空間的消耗,平均時(shí)間復(fù)雜度和最差時(shí)間復(fù)雜度)、特點(diǎn)是重點(diǎn)。

1.插入排序

a.直接插入

當(dāng)給定的數(shù)據(jù)元素序列有序時(shí),關(guān)鍵字之間比較次數(shù)最少,最好的情況下時(shí)間復(fù)雜度為O(N),最差的情況下為O(N^2)

void InSertSort(int*a, int length)
{
	for (int i = 1; i < length; i++)
	{
		int tmp = a[i];
		int j = 0;		
		for ( j = i-1; j >=0&&tmp<a[j];j--)//當(dāng)后面無(wú)序的元素小于有序的元素時(shí),將那個(gè)有序的元素到要排序的這個(gè)元素整體后移后移
		{
			a[j + 1] = a[j];
		}
		a[j+1] = tmp;
	}
}

插入排序是最穩(wěn)定的排序方法

b.折半插入

和直接插入排序過(guò)程相似,用折半的方法尋找插入位置。

void BiInsertSort(int *a, int length)
{
	for (int i = 1; i < length; i++)
	{
		int tmp = a[i];
		int left = 0;
		int right = i - 1;
		int j = 0;

		while (left <= right)
		{
			int mid = (left + right);
			if (tmp < a[mid])//折半
			{
				right = mid - 1;
			}
			else
			{
				left = mid + 1;
			}
		}
		for (j = i - 1; j >= left; j--)//后移
		{
			a[j + 1] = a[j];
		}
		a[j + 1] = tmp;
	}
}

2.交換排序

    兩兩比較,若發(fā)現(xiàn)存在逆序,則交換,一直待到元素序列沒(méi)有逆序?yàn)橹?/p>

a.冒泡排序

時(shí)間復(fù)雜度為O (n^2) 是穩(wěn)定的排序方法

void BubbleSort(int *a, int length)
{
	for (int i = 0; i < length; i++)
	{
		for (int j = 0; j < length - i-1; j++)
		{
			if (a[j]>a[j + 1])
				swap(a[j], a[j + 1]);
		}
	}
}


b.快速排序

1)設(shè)置兩個(gè)變量i、j,排序開(kāi)始的時(shí)候:i=0,j=N-1;

2)以第一個(gè)數(shù)組元素作為關(guān)鍵數(shù)據(jù),賦值給key,即key=A[0];

3)從j開(kāi)始向前搜索,即由后開(kāi)始向前搜索(j--),找到第一個(gè)小于key的值A(chǔ)[j],將A[j]和A[i]互換;

4)從i開(kāi)始向后搜索,即由前開(kāi)始向后搜索(i++),找到第一個(gè)大于key的A[i],將A[i]和A[j]互換;

5)重復(fù)第3、4步,直到i=j; (3,4步中,沒(méi)找到符合條件的值,即3中A[j]不小于key,4中A[i]不大于key的時(shí)候改變j、i的值,使得j=j-1,i=i+1,直至找到為止。找到符合條件的值,進(jìn)行交換的時(shí)候i, j指針位置不變。另外,i==j這一過(guò)程一定正好是i+或j-完成的時(shí)候,此時(shí)令循環(huán)結(jié)束)。

int Partition(int *a, int i, int j)
{
	int base = a[i];
	while (i < j)
	{
		//從右往左掃描
		while (base < a[j] && i<j)
			j--;
		if (i<j)//經(jīng)過(guò)上一步while循環(huán),a[i]>a[j]
		{
			swap(a[i], a[j]);
			i++;
		}
		//從左往右掃描
		while (i<j && base>a[i])
			i++;
		if (i<j)
		{
			swap(a[i], a[j]);
			j--;
		}
	}
	a[i] = base;
	return i;
}
void QuickSort(int *a, int start, int end)
{
	int index=0;
	if (start < end)
	{
		index = Partition(a, start, end);
		QuickSort(a, start, index - 1);
		QuickSort(a, index + 1, end);
	}
}

3.選擇排序

a.直接選擇排序

b.堆排序

快速排序

    快速排序關(guān)鍵在于先在數(shù)組中選擇一個(gè)數(shù)字,接下來(lái)吧數(shù)組中的數(shù)字分為兩部分,比選擇數(shù)組小的放到左邊,大的放到右邊。

名稱欄目:查找與排序
本文網(wǎng)址:http://aaarwkj.com/article44/peiiee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名用戶體驗(yàn)、域名注冊(cè)ChatGPT、服務(wù)器托管、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
香蕉网性欧美在线视频| 黄色成人av在线网站| 亚洲精品视频久久偷拍| 国语对白视频在线观看| 中文字幕亚洲入口久久| 亚洲福利视频在线观看免费 | 在线播放国产91精品| 蜜臀视频一区二区在线播放 | 亚洲一区二区视频在线观看免费| 亚洲国产欧美一区三区成人| 特黄特色的日本大片| 日韩精品一区二区三区四区蜜桃| 亚洲中文字幕精品一区二区三区| 很色很污无遮挡的网色污| 最新日韩精品电影在线网| 成人性生交大片免费看中文| 激情一区二区三区视频| 国产美女极度色诱视频| 日韩成人手机视频在线观看| 成人午夜黄色福利视频| 国产精品黄色自拍合集| 蜜桃臀内射一区二区三区| 久久精品国产av一一区| 亚洲一本一道久久香蕉| 一区二区在线视频免费播放| 亚洲永久免费在线观看| 亚洲国产a级一区二区| 国产黄色一区二区三区| 日本精品1区国产精品| av在线日韩国产精品| 青青草成人公开在线视频| 日本黄色美女日本黄色| av天堂黄色在线观看| 69精品一区二区蜜桃视频| 日本东京热不卡一区二区| 亚洲欧美日韩成人在线| 女人裸体网站无遮挡午夜| 精品人妻一区三区蜜桃| 亚洲成人国产一区二区| 亚洲福利影院一区久久| 亚洲天堂毛片在线观看|