選擇排序:基本思想是依次從待排序中選擇出關鍵字值最小的記錄、關鍵字值次之的記錄……,並分別將它們定位到序列左側的第乙個位置、第二個位置……,從而使待排序的記錄序列成為按關鍵字值由小到大排列的有序序列。
直接選擇排序:從第i個無序列表arr[i...n]中,選擇關鍵字值最小的記錄將其插入有序列表的末尾arr[n-i+1],交換一次位置。
functionselectionsort(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),是不穩定排序。
堆排序:滿足完全二叉樹特性,其坐、右子樹分別是堆,任何乙個結點的值不大於或不小於左/右孩子結點的值。
堆排序分別稱小頂堆、大頂堆。
functionsift(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.時間複...