直接選擇排序:每次遍歷選擇最小的數依次放在第一 二 三 …位置
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 中選擇關鍵碼最大 小 的資料元素 若它不是這組元素中的最後乙個 第乙個 元素,則將它與這組元素中的最後乙個 第乙個 元素交換 在剩餘...