從 10,000 個最小的資料元素中選擇 10,000 個,並使用最佳排序方法

發布 教育 2024-06-13
22個回答
  1. 匿名使用者2024-01-29

    c。堆排序不需要大量的遞迴或多維暫存陣列。 這適用於具有非常大資料量的序列。

    例如,對於百萬以上的記錄,由於快速排序和合併排序是採用遞迴演算法設計的,因此當資料量非常大時,可能會出現堆疊溢位錯誤。

    例如:排序,使用最大(小)交換方式排序,只排序10個數字,這樣就可以計算出100000*10個迴圈:

    int a[1000000];

    int i,j,max,t;

    for(i=0;i<10;i++)

    max=i;

    for(j=i;j<1000000;j++)if(a[max]max=j;

    t=a[i];

    a[i]=a[max];

    a[max]=t;

    這樣,前 10 名是最大的。

  2. 匿名使用者2024-01-28

    堆排序適用於非常大的資料量,例如超過數百萬條記錄。 堆排序將所有資料構建到乙個堆中,最大的資料位於堆的頂部,然後將頂部資料與序列的最後乙個資料交換。 然後再次重建堆,交換資料,然後對所有資料進行排序。

  3. 匿名使用者2024-01-27

    有了選擇排序的想法,你不需要排序,你只需要做出十個選擇。

  4. 匿名使用者2024-01-26

    你是在問如何設計乙個程式來做到這一點嗎?

  5. 匿名使用者2024-01-25

    輸入公式,然後下拉。

    large($a$1:$a$13,row(a1))

  6. 匿名使用者2024-01-24

    假設原始資料位於 A 列中。

    在單元格 B1 中輸入公式。

    large(a:a,row(a1))

    向下拉以填充它。

  7. 匿名使用者2024-01-23

    如果資料位於 A 列中,則從 A1 開始。

    B1 輸入。 索引(a:a,row(a1)*10-9)。

  8. 匿名使用者2024-01-22

    選擇乙個?

    您可以這樣做:在資料的前一列(a 列)中新增一列,在 a1 中輸入 1,在 a2 到 a10 中輸入 0,然後選擇 a1 到 a10 並下拉。

    之後,您可以按 A 列(資料 - 篩選器)進行篩選。

  9. 匿名使用者2024-01-21

    使用邏輯公式或使用巨集。

  10. 匿名使用者2024-01-20

    隨機還是選擇性?

  11. 匿名使用者2024-01-19

    從小到大排序的資料有10,000條,通過二進位搜尋方法最多可以搜尋14次得出結論。

  12. 匿名使用者2024-01-18

    高度為 k 的完整二叉樹的節點總數為 2 k-1,並且 2 13-1 = 8191,2 14-1 = 16383,8191<10000<16383,因此 10000 個元素二叉搜尋的決策樹高度為 14,並且樹的葉節點在第 13 層或第 14 層, 因此,在查詢時,最多可以使用 14 個比較來得出結論。

  13. 匿名使用者2024-01-17

    第三方自發範圍分為新款小風扇。

  14. 匿名使用者2024-01-16

    冒泡+插入。

    首先,將最後四個氣泡按順序排列,然後用插入物將第乙個和第四個氣泡放入其中,然後記錄第乙個和第四個位置,此時可以縮小其餘兩個氣泡的範圍,最後乙個氣泡的範圍最小。

  15. 匿名使用者2024-01-15

    要按順序序列進行搜尋,請善於使用半折搜尋方法。

    具體流程如下:

    1、對四個不必要的資料進行排序,複雜度高達:3+2+1=62,取出四個資料中最小的或最大的乙個,在前9996個有序數列中找成兩半;

    3.取出第二小或第二大資料,找到第一步到第二步找到的位置或第二部分找到的位置到第9996步;

    4.重複第三部分兩次;

    5. 這裡應該更好地考慮半折搜尋方法的複雜性。

  16. 匿名使用者2024-01-14

    在只有 4 個數字的情況下,時間與使用的演算法大致相同。 它很短。

    但你最好使用選擇+插入來對這個問題進行排序。

    選擇最後 4 個數字中最小的乙個,並將它們與前乙個數字進行比較(選擇排序的數字),以找到要插入的位置(插入排序的數字)。 記錄插入位置。

    然後從剩下的 3 個中選擇最小的乙個。 從剛才插入的位置開始一一對比(當然公升序是這樣的,降序是相反的)。

    等等。

    該演算法可以減少比較次數。 如果冒泡,則應將每個數字與前乙個數字逐個進行比較。 我畫不出來。

  17. 匿名使用者2024-01-13

    在這種情況下,插入是最有效的,不需要更改,也是 STL 中使用的小序數排序演算法。

  18. 匿名使用者2024-01-12

    好吧,冒泡演算法應該是最快的。

  19. 匿名使用者2024-01-11

    #include

    #define m 5

    void main()

    int b[m],i,j,t,k;

    for(i=0;iscanf("%d",&b[i]);

    for(i=0;ifor(k=i,j=i+1;jif(b[k]k=j;

    if(i!=k)

    t=b[i];

    b[i]=b[k];

    b[k]=t;

    for(i=0;iprintf("%d ",b[i]);

    錯誤是大括號中的位置錯誤。

    c語言的選擇和排序的詳細說明。

    工作原理是一次從無序組的資料元素中選擇最小(或最大)的元素,存放在無序組的起始位置,減少無序組元素的數量,增加排序的組元素數量,直到所有待排序的資料元素都用完為止。

    以公升序為例

    **:#include

    void selectionsort(int *num,int n)

    int i = 0;

    int min = 0;

    int j = 0;

    int tmp = 0;

    for(i = 0;i < n-1;i++)

    min = i;每次談論 min 時,設定無序組的起始位置元素的下標。

    for(j = i;j < n;j++) 遍歷無序組以查詢最小的元素。

    if(num[min]>num[j])

    min = j;

    if(min != 一世)如果最小元素不是無序組起始位置元素,則與起始元素交換位置。

    tmp = num[min];

    num[min] = num[i];

    num[i] = tmp;

    這裡有乙個空行)。

    int main()

    int num[6] = ;

    int i = 0;

    selectionsort(num,6);在這裡,您需要傳入序列中的元素數。 如果你有一顆心,你可以使用 sizeof 來查詢函式中的元素數。

    for(i = 0;i < 6;i++)

    printf("%d ",num[i]);

    return 0;

  20. 匿名使用者2024-01-10

    順序如下:

    void selectsort(recordtype r, int length) *對記錄陣列 r 進行簡單的選擇和排序,長度為要排序的記錄數*

    初始序列:第一次旅行:12 和 49 交換:12

    第二次旅行: 27 不可移動 : 12 27

    行程 3:65 和 38 交換:12 27 38

    行程 4:97 和 49 交換:12 27 38 49

    行程 5:76 和 65 交換:12 27 38 49 65

    第 6 輪:97 和 76 交換:12 27 38 49 65 76 97 完成。

    選擇排序方法是對定位、比較和交換方法(即氣泡排序方法)的改進。 選擇順序的基本思想是每次行程都在 n-i+1(i=1,2,...n-1) 關鍵字最低的記錄被選為有序序列中的第 i 條記錄。

    基於這一思想的演算法主要包括簡單選擇排序、樹選擇排序和堆排序。

    簡單選擇排序的基本思想:在第一輪中,從待排序的記錄的r[1] r[n]中選擇最小的記錄,用r[1]交換; 第二輪,從待排序的記錄中,從r[2] r[n]中選出最小的記錄,與r[2]交換; 依此類推,第 i 遍從記錄 r[i] r[n] 中選擇最小的記錄進行排序,並將其與 r[i] 交換,以便有序序列增長,直到所有記錄都排序。

    擴充套件材料。 下面也是乙個示例:

    從大到小:

    int main(void) * t 分配的獎品 * } for( i = 0; i < 10; i ++printf("%4d",a[ i ]) * 顯示排序結果 * 返回 0;}

    從小到大:

    int main(void) * t 分配的獎品 * } for( i = 0; i<= 9; i ++printf("%4d",a[ i ]) * 顯示排序結果 * 返回 0;}

  21. 匿名使用者2024-01-09

    按C語言經典示例的選擇方法排序。

  22. 匿名使用者2024-01-08

    缺少原始檔的宣告將新增到第一行,包括

相關回答
3個回答2024-06-13

步驟1:假設Excel工作簿中有兩個表,Sheet1和Sheet2,分別替換為表1和表2。 我們需要將表 2 中的語言分數匯入到表 1 中; >>>More

7個回答2024-06-13

1234567 3456789 ..只要不以偶數開頭,四可以是 1357 1359 1579 1379 3579 偶數:,三可以是 246 248 268 >>>More

12個回答2024-06-13

100是乙個特定的數字嗎?

如果它是 0 100,你可以生成 16 個隨機數,然後你可以判斷它。 >>>More

10個回答2024-06-13

stdin 是 Curry 定義的巨集。 你自己重複了這個,導致這句話被錯誤地解釋。 >>>More

17個回答2024-06-13

在 MATLAB 中隨機生成一維陣列或手動輸入它們。 >>>More