JavaScriptは各種の並べ替えアルゴリズムを実現します.
13651 ワード
記事の目次発泡体並べ替え 並べ替えを挿入する 順序選択 快速並べ替え 正規並べ替え 泡の並べ替え
function bubbleSort(arr) {
for (var i = 0;i < arr.length;i++) {
// , , i+1 , i+1
for (var j = 0;j < arr.length-i-1;j++) {
//
if(arr[j] > arr[j+1]) {
// : ,
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
}
}
}
return arr;
}
並べ替えの挿入function insertSort(arr) {
for (var i = 1; i < arr.length; i++) {
// arr[i]
var temp = arr[i];
for (var j = i - 1; j >= 0; j--) {
// arr[i] i
if (temp < arr[j]) {//temp ,
arr[j + 1] = arr[j];
} else {
arr[j + 1] = temp;
break;
}
}
arr[j + 1] = temp;
}
return arr;
}
並べ替えを選択function chooseSort(arr) {
for (var i = 0;i < arr.length; i++){
var min=9999;
var min_index=-1;
//
for(var j = i; j < arr.length;j++){
if(arr[j]<min){
min=arr[j];
min_index=j;
}
}
[arr[i],arr[min_index]] = [arr[min_index],arr[i]];
}
return arr;
}
クイックソートfunction Partition (arr,low,high){
var pk=arr[low];
while(low <high) {
while(arr[high]>=pk && high>low){
high--;
}
arr[low]=arr[high];
while(arr[low]<=pk && high>low){
low++;
}
arr[high]=arr[low];
}
arr[low]=pk;
return low;
}
function quickSort(arr,low,high) {
if(low<high){
var pk=Partition(arr,low,high);
quickSort(arr,low,pk-1);
quickSort(arr,pk+1,high);
}
}
並べ替え