91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

一百萬個數求前一百個

發布時間:2020-06-28 19:46:12 來源:網絡 閱讀:304 作者:xiexiankun 欄目:編程語言

在內存有限的情況下,求出一百萬個數的前一百個。

解題思路:首先想到的是將一百萬個數分成一百份,一份就是一萬個,然后以一萬建一個最小堆求出前一百個,一百份又是一萬個這樣就能求出前一百個;

代碼如下:


#include<windows.h>

#include<vector>

#include<ctime>

#include<cstdlib>

#include<iostream>

using namespace std;


const int N=10000;

const int K=100;


void CreateArray(vector<int>&array)

{

srand(time(0));

array.reserve(N);

for (size_t i = 0; i < N; i++)

{

array.push_back(rand() % 10000);

}

for (size_t j = N-K; j < N; j++)

{

array[j] = rand()%N;

}

}



void AdjustDown(int* a, size_t size, int root)

{

int child = root * 2 + 1;

while (child < size)

{

if (child + 1 <size && a[child + 1] < a[child])

{

++child;

}

if (a[child] < a[root])

{

swap(a[child], a[root]);

root = child;

child = 2 * root + 1;

}

else

{

break;

}

}

}


void Gettop(vector<int>&array)

{

int a[K] = {};

for (size_t i = 0; i < K; i++)

{

a[i] = array[i];

}

for (int i = (K - 2) / 2; i >= 0; i--)

{

AdjustDown(a, K, i);

}

for (int j = K; j < N; j++)

{

if (a[0]<array[j])

{

a[0] = array[j];

AdjustDown(a, K, 0);

}

}

for (size_t i = 0; i < K; i++)

{

cout << a[i] << " ";

}

cout << endl;

}

void Test()

{

vector<int>array;

CreateArray(array);

Gettop(array);


}


向AI問一下細節

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

AI

历史| 安西县| 德钦县| 十堰市| 抚宁县| 剑河县| 南城县| 通州市| 延津县| 平远县| 改则县| 嘉义县| 安徽省| 景德镇市| 喀什市| 讷河市| 白城市| 乌苏市| 西乌| 荥经县| 罗平县| 罗甸县| 马尔康县| 徐闻县| 唐河县| 桐庐县| 崇礼县| 河源市| 北安市| 泸水县| 东乌珠穆沁旗| 玛曲县| 长汀县| 和政县| 康平县| 黄梅县| 永昌县| 平邑县| 白朗县| 洛川县| 吐鲁番市|