中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++實現堆排序

發布時間:2020-04-18 21:44:29 來源:網絡 閱讀:441 作者:zgw285763054 欄目:編程語言
/*堆排序*/

#include <iostream>
using namespace std;

void AdjustDown(int* array, size_t size, size_t parent)
{
	size_t child = parent*2 + 1;

	while (child < size)
	{
		if (child+1 < size 
			&& array[child] < array[child+1])
		{
			++child;
		}

		if (array[child] > array[parent])
		{
			swap(array[child], array[parent]);

			parent = child;
			child = parent*2 + 1;
		}
		else
		{
			break;
		}
	}
}

void HeapSort(int* array, size_t size)
{
	//建堆
	for (int i = (size-2)/2; i >= 0; --i)
	{
		AdjustDown(array, size, i);
	}

	//選數據排序
	for (size_t i = 0; i < size; ++i)
	{
		swap(array[0], array[size-i-1]);

		AdjustDown(array, size-i-1, 0);
	}
}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙江县| 湄潭县| 岳阳县| 达日县| 长武县| 大渡口区| 扬州市| 怀仁县| 南雄市| 二连浩特市| 连南| 合肥市| 开平市| 岗巴县| 阜宁县| 大姚县| 辽宁省| 句容市| 灌云县| 景德镇市| 若尔盖县| 澄城县| 马尔康县| 青海省| 安化县| 赣州市| 封开县| 永泰县| 化德县| 周至县| 芜湖市| 司法| 兴文县| 珲春市| 新安县| 星座| 清新县| 阿坝| 湖州市| 岳普湖县| 吉安市|