K60 Pro官方停產 第三方瞬間漲價
雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
堆排序是一種高效的排序算法,基于二叉堆數據結構實現。它具有穩定性、時間復雜度為O(nlogn)和空間復雜度為O(1)的特點。
public static void HeapSort(int[] array) { int arrayLength = array.Length; //構建最大堆 for (int i = arrayLength / 2 - 1; i >= 0; i--) Heapify(array, arrayLength, i); //依次取出堆頂元素,并重新調整堆 for (int i = arrayLength - 1; i >= 0; i--) { //將堆頂元素與當前最后一個元素交換 int temp = array[0]; array[0] = array[i]; array[i] = temp; //重新調整堆 Heapify(array, i, 0); } } private static void Heapify(int[] arr, int n, int i) { int largest = i; //假設父節點最大 int left = 2 * i + 1; //左子節點 int right = 2 * i + 2; //右子節點 //如果左子節點大于父節點,則更新最大值 if (left < n && arr[left] > arr[largest]) largest = left; //如果右子節點大于父節點和左子節點,則更新最大值 if (right < n && arr[right] > arr[largest]) largest = right; //如果最大值不是當前父節點,則交換父節點和最大值,并繼續向下調整堆 if (largest != i) { int swap = arr[i]; arr[i] = arr[largest]; arr[largest] = swap; Heapify(arr, n, largest); } } public static void HeapSortRun() { int[] array = { 19, 27, 46, 48, 50, 2, 4, 44, 47, 36, 38, 15, 26, 5, 3, 99, 888, 0, -1 }; Console.WriteLine("排序前數組:" + string.Join(", ", array)); HeapSort(array); Console.WriteLine("排序后數組:" + string.Join(", ", array)); }
圖片
堆排序是一種高效的排序算法,通過構建最大堆和反復調整堆的操作,實現對數組的排序。其時間復雜度為O(nlogn),并且具有較好的穩定性和空間效率。但是由于其涉及大量的元素交換操作,所以在實際應用中,可能不如快速排序等算法效率高。
本文鏈接:http://www.tebozhan.com/showinfo-26-12710-0.html我們一起聊聊C#堆排序算法
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com