借鑑:借鑑跳轉,上面都有詳細的描述以及**的實現。堆排序
堆排序(heapsort)是指利用堆這種資料結構所設計的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質:即子結點的鍵值或索引總是小於(或者大於)它的父節點。
//堆排序
public
class
heapsort
//父節點大於子節點不用進行判斷
if(arr[index]
<= temp)
break
; arr[i]
= arr[index]
; i = index;
index =
2* i +1;
} arr[i]
= temp;
}public
static
void
heapsort
(int
arr)
//排序,將最大的節點放在堆尾,然後從根節點重新調節
for(
int i = arr.length -
1; i >=
1; i--)}
public
static
void
main
(string[
] args)
;heapsort
(arr)
;for
(int i =
0; i < arr.length; i++)}
}
三天一題 08 歸併排序
借鑑 借鑑跳轉,上面都有詳細的描述以及 的實現。歸併排序 歸併排序 merge sort 把長度為n的輸入序列分成兩個長度為n 2的子串行 對這兩個子串行分別採用歸併排序 將兩個排序好的子串行合併成乙個最終的排序序列。public class mergesort mergesort arr,0,ar...
每日一題的演算法 2020 09 10堆排序
參考 主要理解怎麼生成大頂堆!其餘還是很好理解的。當然這個寫大頂堆的方式不一定是最合適的方式。你能寫出偽 嗎?如果能也算自己理解了 講解 import timeit from collections import deque 將最大值調到最後 def swap param ilist,i,j ili...
python一天一題 3
coding utf8 from selenium import webdriver import time import logging import os.path 搜尋取搜尋的條數 我們需要封裝乙個簡單的日誌類,主要有以下內容 1.生成的日誌檔案格式是 年月日時分秒.log 2.生成的 log...