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...