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

2021-09-08 16:37:22 字數 956 閱讀 8256

選擇排序:基本思想是依次從待排序中選擇出關鍵字值最小的記錄、關鍵字值次之的記錄……,並分別將它們定位到序列左側的第乙個位置、第二個位置……,從而使待排序的記錄序列成為按關鍵字值由小到大排列的有序序列。

直接選擇排序:從第i個無序列表arr[i...n]中,選擇關鍵字值最小的記錄將其插入有序列表的末尾arr[n-i+1],交換一次位置。

function

selectionsort(arr)

}var tmpnum =arr[tmp];

arr[tmp] =arr[i];

arr[i] =tmpnum;

}return

arr;

}

var arr = [51,33,62,96,87,17,28,51];

selectionsort(arr);

直接選擇排序的平均時間複雜度o(n2),是不穩定排序。

堆排序:滿足完全二叉樹特性,其坐、右子樹分別是堆,任何乙個結點的值不大於或不小於左/右孩子結點的值。

堆排序分別稱小頂堆、大頂堆。

function

sift(arr,p,len)

if(tmp>=arr[c])

arr[p] =arr[c];

p =c;

c = 2*p+1;

}arr[p] =tmp;

}

function

heapsort(arr)

for(var i= arr.length-1;i>0;i--)

}

var arr = [51,33,62,96,87,17,28,51];

heapsort(arr);

console.log("小頂堆:"+arr);

堆排序的時間複雜度o(nlog2n),是不穩定排序。

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

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

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

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

選擇排序(直接選擇排序 堆排序)

選擇排序的基本方法 每次都從待排序物件中選出排序碼最大或最小的物件,依次排列,一共進行n 1次即可將n個物件排序完成。選擇排序的實施方案 1.直接選擇排序 2.堆排序 一 直接選擇排序 1.演算法 直接選擇排序 func selectsort data int if minindex i 2.時間複...