一般的な並べ替えアルゴリズムの理解はJSと実現される.

2806 ワード

0.アルゴリズムとは?
入力:アルゴリズムはゼロ以上の入力量が必要です.出力:一つのアルゴリズムは一つ以上の出力量が必要です.明確性:アルゴリズムの説明は曖昧さがなくてはいけません.実際の実行結果は確定された有限性です.限られたステップで有効性を終了しなければなりません.実行される者が実現できる.——ガートナーの「コンピュータプログラム設計芸術」は、まず互換関数Swapを定義し、交換配列の中の2つの数の値として作用します.
2.並べ替えの選択
並べ替えを選択します.最初の要素iにポインタを指し、最小要素indexOfminとしてマークして、その後の要素jを定義します.その後、iをインクリメントして、配列全体を巡回します.j番目の要素がマークの最小要素より小さい限り、jの値を最小要素に割り当てます.また、最小要素がiと等しい限り、最小要素はiと交換される.
function swap(array,a,b) {
var temp=array[a]
array[a]=array[b]
array[b]=temp
}
3. べ えの
ランキングを するのは です.カードを つ に きる として に できます. にはすでに しいカードがあります. しいカードを るごとに( しい を み ります.) の っているカードと します. きいなら に いて、 さいなら に きます.まず、 する を の の に いて、 の から から へ します. から む が な より きいたびに、 の へ します.このようにn-1ステップを って べ えが な を つけることができます.JSコード :

1.

, , , 。 , , 。
JS :

function sort(array) {
var i
var j
for (i=1 ; i< array.length ;i++){
for (j=0;j< array.length -i;j++){
if (array[j]<=array[j+1]){
}else
swap(array,j,j+1)
console.log("swap"+array[j]+','+array[j+1])
}
}
return array;
}
4. べ え
に べ えてまた な と して、それは にすべての に の を し てさせて、 べ えてすべて“ より きいのはすべて の になって、 より さいのはすべて の にあります”を して、それらの を しません. な は、まず ( には の または )を してから を つの に けます. がそれより さいなら、 に きます.それより きいです. に いてください.それを り し すれば が られます.
function sort(array) {
var i
var j
var indexOfMin
for (i = 0; i < array.length; i++) {
indexOfMin = i
for (j = i + 1; j < array.length; j++) {
if (array[j] < array[indexOfMin]) {
indexOfMin = j
}
}
if (indexOfMin !== i) {
swap(array, i, indexOfMin)
}
}
return array;
}

function sort(array){
var i
var j
for(i=1; i < array.length; i++){
console.log('current:'+i+':'+array[i])
var position = i
for(j=i-1; j>=0; j--){
if(array[j]>array[i]){
position = j
console.log('position:'+j)
}else{
var value = array[position]
array.splice(position,1)
array.splice(j,0,value)
console.log('insert at :'+j)
}
}
}
return array;
}

function sort(array){
if(array.length<=1){
return array;
}
var len = Math.floor(array.length/2);
var cur = array.splice(len,1);
var left = [];
var right = [];
for(var i=0;i if(cur>array[i]){
left.push(array[i]);
}else{
right.push(array[i]);
}
}
return sort(left).concat(cur,sort(right));
}