直接選擇排序和堆排序

2021-10-10 05:30:09 字數 914 閱讀 6367

直接選擇排序:每次遍歷選擇最小的數依次放在第一 二 三 …位置

public

static

void

select

(arr)

}if(small!=i)

}}

堆排序:思路構建乙個大頂堆,然後把根節點值和末尾節點交換,末尾就是最大值了,然後再將除尾節點外的n-1個元素構建為大頂堆,重複上述操作

public

static

void

main

(string[

] args)

;int temp =0;

//呼叫函式構建大頂堆,方便後面for迴圈自減

for(

int i=arr.length/2-

1;i>=

0;i--)//

for(

int j=arr.length-

1;j>

0;j--

) system.out.

println

(arrays.

tostring

(arr));

}//構建區域性的大頂堆

public

static

void

adjustheap

(int arr,

int i,

int length)

//如果子節點大於父節點

if(arr[k]

>temp)

else

}//for迴圈結束後,我們已經將以i為父節點的樹的最大值放在了當前樹的父節點(區域性),

//將temp值賦給之前的最大值所在的節點

arr[i]

=temp;

}

選擇排序 直接選擇排序和堆排序

選擇排序 基本思想是依次從待排序中選擇出關鍵字值最小的記錄 關鍵字值次之的記錄 並分別將它們定位到序列左側的第乙個位置 第二個位置 從而使待排序的記錄序列成為按關鍵字值由小到大排列的有序序列。直接選擇排序 從第i個無序列表arr i.n 中,選擇關鍵字值最小的記錄將其插入有序列表的末尾arr n i...

選擇排序 直接選擇排序,堆排序

選擇排序 selection sort 是一種簡單直觀的 排序演算法 它的工作原理是每一次從待排序的 資料元素 中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法 1.簡單的選擇排序 基本思想 在要排序的一組數中,選出最小的乙個數與第乙個位...

選擇排序 直接選擇排序 堆排序

1.基本思想 每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完 在元素集合array i array n 1 中選擇關鍵碼最大 小 的資料元素 若它不是這組元素中的最後乙個 第乙個 元素,則將它與這組元素中的最後乙個 第乙個 元素交換 在剩餘...