aardio 文档

aardio 范例: 合并排序

import console;

var merge = function(array,from,mid,to){ 

    var left = { table.unpack(array,from,mid) }
    var right = { table.unpack(array,mid+1,to) };

    var i = 1;
    var j = 1;

    for(k=from;to){ 
        //比较left,right最前面的一个数,从中取最小的一个
        if( (!right[j]) or left[i] <= right[j] ){ 
            //如果right空,则!right[j]为真,就直接取left 
            array[k] = left[i];
            i++;
        }
        else { 
            //如果L空,则left[i]为null,null不会小于等于任何数,left[i] <= right[j]必然为不成立
            array[k] = right[j];
            j++;
        }  
    }

}

var mergeSort; 
mergeSort = function(array,from,to) {

    if( from < to ){
        var mid =math.floor( ( from + to ) / 2) 
        mergeSort(array,from,mid);
        mergeSort(array,mid+1,to);
        merge(array,from,mid,to);
    }
}


console.log("----------------")
console.log("合并排序( 基于分治法 )")
console.log("----------------")

array ={2;4;5;7;1;2;3};
mergeSort(array,1,#array)

//输出结果
for(i=1;#array;1){
    console.log( array[i] )
}

execute("pause")

Markdown 格式