三天一題 06 堆排序

2021-09-24 18:00:49 字數 850 閱讀 7929

借鑑:借鑑跳轉,上面都有詳細的描述以及**的實現。

堆排序
堆排序(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...