首頁 > 專家說

利用堆排序排序算法對一個元素個數(shù)不少于20的隨機序列進行排序,輸出每趟排序的中間結(jié)果和每趟中關(guān)鍵字的比較次數(shù)和元素的移動次數(shù)。

來源:新能源網(wǎng)
時間:2024-08-17 13:29:11
熱度:

利用堆排序排序算法對一個元素個數(shù)不少于20的隨機序列進行排序,輸出每趟排序的中間結(jié)果和每趟中關(guān)鍵字的比較次數(shù)和元素的移動次數(shù)?!緦<医庹f】:package com.help;imp

【專家解說】:package com.help;import java.util.Scanner;public class VariableSort { public static void main(String[] args) { Scanner input = new Scanner(System.in); int x = input.nextInt(); int[] a = new int[x]; //這里是我輸入的數(shù)組長度。所以產(chǎn)生出的a.length就會等于x // int[] a = new int[20]; System.out.println("數(shù)組元素個數(shù)為:"+x); for (int i = 0; i < 20; ++i) a[i] = (int) (Math.random() * 10); heapSort(a); } static void swap(int[] a, int x, int y) { int t = a[x]; a[x] = a[y]; a[y] = t; } static int maxHeapify(int[] a, int i, int n) { int l, r, c = 0, m; do { r = 2 * (i + 1); l = r - 1; m = l < n && a[l] > a[i] ? l : i; m = r < n && a[r] > a[m] ? r : m; if (m != i) { swap(a, m, i); ++c; i = m; } else break; } while (true); return c; } static void heapSort(int[] a) { int n = a.length; int c = 0; for (int i = (n - 1) / 2; i >= 0; --i) maxHeapify(a, i, n); for (int i = n - 1; i > 0; --i) { swap(a, 0, i); c = maxHeapify(a, 0, --n); for (int j = 0; j < a.length; ++j) System.out.print(a[j] + " "); System.out.println("比較次數(shù):" + (c + 1) * 2 + " 交換次數(shù):" + c); } } }
  1. 放射性元素在能源、農(nóng)業(yè)、醫(yī)療、考古方面的應(yīng)用(高中化學(xué)必修2 P12第8題)
    2024-08-17
  2. 放射性元素在能源、農(nóng)業(yè)、醫(yī)療、考古方面的應(yīng)用(高中化學(xué)必修2P12第8題)
    2024-08-17
  3. 我買的美的凈水器過濾的水有沒有微量元素?微量元素達標嗎
    2024-08-17
  4. 我買的美的凈水器過濾的水有沒有微量元素?微量元素達標嗎
    2024-08-17
  5. 焦炭,生石灰,石灰石,純堿,燒堿是什么?化學(xué)元素符號是什么?
    2024-08-17
  6. 暗黑2 德魯依` 我想練個變形和召喚 元素不學(xué)。應(yīng)該怎么加屬性點和技能點
    2024-08-17
  7. 液化石油氣中一定含有什么元素
    2024-08-17
  8. 什么元素和焦炭在高溫下發(fā)生反應(yīng)可制成半導(dǎo)體材料?
    2024-08-17
  9. 龍之谷主火元素為什么不好
    2024-08-17
  10. (化學(xué)--選修化學(xué)與技術(shù))海水中溶解了大量的氣體物質(zhì)和各種鹽類.人類在陸地上發(fā)現(xiàn)的100多種元素,在海
    2024-08-17
  11. 海水中溶解了大量的氣體物質(zhì)和各種鹽類.人類在陸地上發(fā)現(xiàn)的100多種元素,在海水中可以找到80多種.海洋
    2024-08-17
  12. 在高溫條件下焦炭可以把氧化鐵的鐵元素還原為單質(zhì)鐵,請算要使80噸氧化鐵完全還原,需要碳的質(zhì)量至少為多少
    2024-08-17
  13. 液化石油氣的主要成分是丙烷(C3H8).下面說法不正確的是A.每個丙烷分子中含有11個原子B.丙烷由3個碳原子、8個氫原子構(gòu)成C.丙烷中碳、
    2024-08-17
  14. 【查閱資料】(1)液化石油氣是一種主要含有C、H兩種元素的混合物,完全燃燒生成CO2和H2O,不完全燃燒時
    2024-08-17
  15. 用化學(xué)方法證明煤氣,液化石油氣,沼氣中都含有碳元素?
    2024-08-17