堆排序的兩種寫法

2021-10-07 10:22:13 字數 1066 閱讀 3035

1、建堆整堆法

主要**

建堆和整堆

public

void

sortmethod

(int

heap)

//初試化建堆

for(

int i =

(heap.length -1)

/2; i >=

0; i--

)//交換堆頂和陣列末尾元素,迴圈整堆,注意邊界值

for(

int i = heap.length -

1; i >

0; i--

)}

整堆的細節

//整堆函式——大頂堆

public

void

heapify_big

(int

heap,

int parent,

int border)

//如果右孩子存在

if(flag +

1<= border)

//對比父節點和孩子結點,找最大值,發生交換,並遞迴其最大值孩子結點

if(heap[flag]

> heap[parent]

)}

2、直接整堆法

主要**

public

void

sortmethod

(int

array)

int length = array.length -1;

for(

int i =

0; i < length; i++

)}

public

void

heapify_big

(int

array,

int bound)

if(flag <= bound && array[flag]

> array[i])}

}

氣泡排序的兩種寫法

public static void main string args function1 a function2 a public static void function1 int a system.out.println system.out.println 第 i 1 次迴圈完成 syste...

排序 快排的兩種寫法

之前的部落格記錄過各種排序 快排演算法 如下,該方法思路很直接也很清晰,但是在生成left和right時會需要新的空間,所以其空間複雜度要高一些。def quick sort li if len li 2 return li tmp li 0 快排中將序列分為左右的值 left x for x in...

成功的氣泡排序的兩種寫法

演算法當中的氣泡排序 演算法中的氣泡排序,用於將陣列中的一組雜亂無章的數字按順序排列 氣泡排序 假設有一陣列,陣列有10個元素。2020年10月13日 冒泡演算法c namespace 陣列排序 region該段與排序無關 console.writeline 排序前的陣列 foreach int i...