並べ替え→下書き
3308 ワード
JSコード位置
bodyタグが閉じる前に書くと、ブラウザがスクリプトをロードする前にHTMLを解析して表示し、ページのパフォーマンスを向上させることができます.
きゅうそくれつ
欲張りアルゴリズム
バブルソート
ソートの選択
ソートの挿入
集計ソート
にぶんたんさく
DFS再帰
BFS
bodyタグが閉じる前に書くと、ブラウザがスクリプトをロードする前にHTMLを解析して表示し、ページのパフォーマンスを向上させることができます.
きゅうそくれつ
var quickSort = function(arr){
// , 1,
var len = arr.length;
if(len <= 1){
return arr
}
// , " "(pivot), , , 。
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
right = [];
// , , " " , 。
arr.forEach((item)=>{
if(item < pivot){
left.push(item)
}else{
right.push(item)
}
})
//
return quickSort(left).concat([pivot],quickSort(right))
}
var arr = [3,77,66,55]
console.log(quickSort(arr))//[3,55,66,77]
欲張りアルゴリズム
function MinCoins(coins){
var coins = coins;
this.change = function(num){
var res = [],
total = 0;
for(var i = coins.length-1;i>=0;i--){
var coin = coins[i]
while(total+ coin <= num){
res.push(coin)
total += coin
}
}
return res;
}
}
var minCoins = new MinCoins([1,5,10,25])
var a = minCoins.change(36)
console.log(a)
バブルソート
function bubbleSort(arr){
var len = arr.length;
for(var i=0;iarr[j+1]){
var temp = arr[j]
arr[j] = arr[j+1]
arr[j+1]=temp
}
}
}
return arr
}
ソートの選択
function selectSort(arr){
var len=arr.length;
var minIndex,temp;
console.time(' ');
for(i=0;i
ソートの挿入
function insert(arr){
var len = arr.length,
temp,
j;
for(var i=1;itemp&&j>0){
arr[j] = arr[j-1]
j--;
}
arr[j] = temp
}
return arr
}
集計ソート
function merge(leftArr, rightArr){
var result = [];
while (leftArr.length > 0 && rightArr.length > 0){
if (leftArr[0] < rightArr[0])
result.push(leftArr.shift()); // ,
else
result.push(rightArr.shift());
}
return result.concat(leftArr).concat(rightArr); // ,
}
function mergeSort(array){
if (array.length == 1) return array;
var middle = Math.floor(array.length / 2); //
var left = array.slice(0, middle); //
var right = array.slice(middle);
return merge(mergeSort(left), mergeSort(right)); //
}
にぶんたんさく
function binarySearch(arr,target){
arr.sort((a-b)=>{a-b})
var low = 0,
heigh =arr.length-1,
mid;
while(low<=heigh){
mid = Math.floor(low+heigh/2),
if(targetheight){
low = mid + 1
}else{
return mid
}
}
return -1;
}
DFS再帰
function DFS(node){
var res = []
while(node!=null){
res.push(node);
children = node.children;
for(var i=0;i
BFS