Javascript sort()発泡体の並べ替え、選択の順序、迅速な並べ替え、バケツの並べ替え
17870 ワード
sort()は、配列を正順または倒順に並べ、元の配列を変えます.は、後から前へ循環する .内部は、外部変数 に前から後へ循環する.は、前の値が後の値より大きいかどうかを判断し、前の値の大きさの後の値があれば、交換位置 を決定する.
最初に最小または最大のインデックス値を見つけて、現在の下付き要素とこの最小の要素を交換します.エルゴード配列 現在のインデックス値の最小値を設定します. は、現在の次の項目から配列の末尾 を巡回する.は、全ての巡回値の中で最小のインデックス値 を判断する.は、現在の値と最小のインデックス値の要素 を交換する.は、配列の中間要素を削除し、この要素を変数 に返します.は2つの空の配列を作成します.一つはleftで、一つはrightで、この配列を巡回して、中間要素より小さいデータをleftに預け入れます.中間要素より大きいデータはright に預け入れます.は、left配列を中間要素とRight配列と再帰的に結合し、 に戻る.は、関数の最上部に、必ず書き込み行列長が1以下であり、この配列 を返します.
オブジェクトのkeyが数値の場合、オブジェクトは数値順に自動的に並べられ、keyが数値と文字が交差している場合は数値を優先します.は、配列中の各項目を対象としたkeyとvalueである. オブジェクトの中のkeyが数値である場合、オブジェクトは数値順に自動的に並べられます. は、元の配列のデータをクリアする. は、オブジェクトのvalueを順番に配列に追加します.
var arr=[1,4,6,2,3,8,7,6,5,3,9,10];
arr.sort();
console.log(arr);//[1,10,2,3,3,4,5,6,6,7,8,9,12]
配列を小さいものから大きいものへ、あるいは大きいものから小さいものへ順に並べたい場合は、sort()にパラメータを入力する必要があります.var arr=[1,4,6,2,3,8,7,6,5,3,9,10];
//return a-b,
//return b-a,
arr.sort(function(a,b){
return a-b;
})
//return Math.random()-0.5;
arr.sort(function(){
return Math.random()-0.5;
})
泡の並べ替えfunction sort(arr){
var len=arr.length;
while(len>0){
for(var i=0;i<len;i++){
if(arr[i]>arr[i+1]){
var temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
len--;
}
}
並べ替えを選択最初に最小または最大のインデックス値を見つけて、現在の下付き要素とこの最小の要素を交換します.
function sort(arr){
var minIndex;
for(var i=0;i<arr.length;i++){
//
minIndex=i;
for(var j=i+1;j<arr.length;j++){
// , minIndex , minIndex
minIndex=arr[minIndex]<arr[j] ? minIndex : j;
}
// minIndex
var temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
}
クイックソート(早い列)var arr = [1,4,2,2,3,10];
function sort(arr){
// 1,
if(arr.length<=1) return arr;
var left=[];
var right=[];
// item, ,
var item=arr.splice(parseInt(arr.length/2),1)[0];
for(var i=0;i<arr.length;i++){
// , item, left
if(arr[i]<item) left.push(arr[i]);
// item, right
else right.push(arr[i]);
}
arr=sort(left).concat(item,sort(right));
return arr;
}
console.log(sort(arr));
バケツの並べ替えオブジェクトのkeyが数値の場合、オブジェクトは数値順に自動的に並べられ、keyが数値と文字が交差している場合は数値を優先します.
let arr=[2,5,7,1,4,3,6,8,0];
let obj={};
arr.forEach(item=>{
obj[item]=item
});
arr.length=0;
for(let prop in obj){
arr.push(obj[prop]);
}
console.log(arr);//[0,1,2,3,4,5,6,7,8]