JavaScript基本並べ替えアルゴリズム(発泡、選択、挿入)
2298 ワード
この間、いくつかのよく使うアルゴリズムを知りました.JavaScriptで書いてみました.
1.JavaScript発泡秩序化. 隣接する元素と逐次比較して,後の要素より大きいと交換位置を示した.
ソートプロセス:
[8,7,6,5,4,3,2,1,0,9][7,6,5,4,3,2,1,0,8,9][6,5,4,3,2,1,0,7,8,9][5,4,3,3,1,0,6,7,7,8,9][4,3,2,1,1,0,0,0,0,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 0,2,3,4,5,6,7,8,9)[0,1,2,3,4,5,6,7,8,9]
泡のように水面に出る.
2.JavaScriptは並べ替えを選択します.左は秩序配列で、右は無秩序配列です.各ラウンドは、無秩序配列の中から一番小さいものを選択して、秩序配列の最後に置きます.
[0, 8,7,6,5,4,3,2,1,9)[0,1, 7,6,5,4,3,2,8,9)[0,1,2, 6,5,4,3,7,8,9)[0,1,2,3, 5,4,6,7,8,9)[0,1,2,3,4, 5,6,7,8,9)[0,1,2,3,4,5, 6,7,8,9)[0,1,2,3,4,5,6, 7,8,9)[0,1,2,3,4,5,6,7, 8,9)[0,1,2,3,4,5,6,7,8,9]
一番小さいのを後ろから選んで左の順序に置いてください.これを見ると、実は半分ぐらいに並んでいます.
3.JavaScript挿入順序.左は秩序配列で、右は無秩序配列です.各順序付けは、秩序配列中の適切な位置に無秩序配列の最初のビットと秩序配列中の値を比較して挿入される.
[8,9, 7,6,5,4,3,2,1,0)[7,8,9, 6,5,4,3,2,1,0)[6,7,8,9, 5,4,3,2,1,0)[5,6,7,8,9, 4,3,2,1,0)[4,5,6,7,8,9, 3,2,1,0)[3,4,5,6,7,8,9, 2,1,0)[2,3,4,5,6,7,8,9, 1,0)[1,2,3,4,5,6,7,8,9, 0)[0,1,2,3,4,5,6,7,8,9]
今日は遅すぎてここに書きます.後には複雑な順序付けアルゴリズムがあります.皆さん、こんにちは.
転載は出典を明記する:http://blog.csdn.net/liusaint1992/article/details/51284799
1.JavaScript発泡秩序化. 隣接する元素と逐次比較して,後の要素より大きいと交換位置を示した.
function bubbleSort(arr){
var j,k,temp,len=arr.length,i=len-1,paook;
while(i--){
paook = true;
for (j = 0; j < len-1; j++) {
k=j+1;
temp = arr[j];
if(arr[k]<arr[j]){
arr[j] = arr[k];
arr[k] = temp;
paook = false;
}
}
if(paook == true){
break;
}
console.log(arr);
}
return arr;
}
配列:var a=[9,8,7,6,5,4,3,2,1,0]ソートプロセス:
[8,7,6,5,4,3,2,1,0,9][7,6,5,4,3,2,1,0,8,9][6,5,4,3,2,1,0,7,8,9][5,4,3,3,1,0,6,7,7,8,9][4,3,2,1,1,0,0,0,0,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 0,2,3,4,5,6,7,8,9)[0,1,2,3,4,5,6,7,8,9]
泡のように水面に出る.
2.JavaScriptは並べ替えを選択します.左は秩序配列で、右は無秩序配列です.各ラウンドは、無秩序配列の中から一番小さいものを選択して、秩序配列の最後に置きます.
function selectSort(arr){
var i,j,k,len=arr.length,temp;
for (i = 0; i < len-1; i++) {
k=i;
temp = arr[i];
for (j = i+1; j < len; j++) {
if(temp>arr[j]){
temp = arr[j];
k = j;
}
}
arr[k] = arr[i];
arr[i] = temp;
console.log(arr);
}
return arr;
}
ソートプロセス:[0, 8,7,6,5,4,3,2,1,9)[0,1, 7,6,5,4,3,2,8,9)[0,1,2, 6,5,4,3,7,8,9)[0,1,2,3, 5,4,6,7,8,9)[0,1,2,3,4, 5,6,7,8,9)[0,1,2,3,4,5, 6,7,8,9)[0,1,2,3,4,5,6, 7,8,9)[0,1,2,3,4,5,6,7, 8,9)[0,1,2,3,4,5,6,7,8,9]
一番小さいのを後ろから選んで左の順序に置いてください.これを見ると、実は半分ぐらいに並んでいます.
3.JavaScript挿入順序.左は秩序配列で、右は無秩序配列です.各順序付けは、秩序配列中の適切な位置に無秩序配列の最初のビットと秩序配列中の値を比較して挿入される.
function insertSort(arr){
var i,j,k,len=arr.length,temp;
for (i = 1; i < len; i++) {
temp = arr[i];
for (j=i-1; j >-1; j--) {
if(arr[j]>temp){
arr[j+1] = arr[j];
}else{
break;
}
}
arr[j+1] = temp;
console.log(arr);
}
return arr;
}
並べ替えプロセス:[8,9, 7,6,5,4,3,2,1,0)[7,8,9, 6,5,4,3,2,1,0)[6,7,8,9, 5,4,3,2,1,0)[5,6,7,8,9, 4,3,2,1,0)[4,5,6,7,8,9, 3,2,1,0)[3,4,5,6,7,8,9, 2,1,0)[2,3,4,5,6,7,8,9, 1,0)[1,2,3,4,5,6,7,8,9, 0)[0,1,2,3,4,5,6,7,8,9]
今日は遅すぎてここに書きます.後には複雑な順序付けアルゴリズムがあります.皆さん、こんにちは.
転載は出典を明記する:http://blog.csdn.net/liusaint1992/article/details/51284799