JavaScriptソート
2374 ワード
var arr = [98, 14, 32, 54, 26, 62, 41, 77, 83];
一、sort()の方法配列内の要素だけを交換して、新しいメモリを開けません.
arr.sort();
// (a - b )
arr.sort(function(a,b) { return b - a; })
二、快速並べ替え中心思想は以下の通りである.1、集合の中から一つの要素を基準pivotとして選択する.2、巡回して、基準より小さい要素を基準の左に移動し、大きいものを右に移動します.3、再帰的に、サブセットが1つの要素位置だけになるまで、左右の2つのサブセットに対してこの方法を繰り返し実行する.
function quickSort(arr) {
if (arr.length <= 1) { return arr; }
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] <= pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
三、泡の並べ替え単純で粗暴で、遍歴の過程の中で、元素は交換します.
function bubbleSort(arr) {
if (arr.length <= 1) { return arr; }
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
四、並べ替えを選択する泡に似ています.
function selectionSort(arr) {
if (arr.length <= 1) { return arr; }
var minIndex;
for (var i = 0; i < arr.length - 1; i++) {
minIndex = i;
for (var j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
var temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
五、並べ替えの挿入トランプをしたことがありますか?
function insertionSort(arr) {
if (arr.length <= 1) { return arr; }
var preIndex, current;
for (var i = 1; i < arr.length; i++) {
preIndex = i - 1;
current = arr[i];
while(preIndex >= 0 && arr[preIndex] > current) {
arr[preIndex + 1] = arr[preIndex];
preIndex--;
}
arr[preIndex + 1] = current;
}
return arr;
}
まだ続きます.