aardio 文档
aardio 范例: 交换排序
import console;
/*-------------------------------------------------------
* 冒泡排序
*-------------------------------------------------------*/
//冒泡排序实现简单,代码较少,是较常用交换类排序
bubbleSort = function(arr) {
for( i=1;#arr) {
for(j=#arr;i+1;-1) //自后向前挨个比较,i前面的已经是最小的数,并排序好了
if(arr[j]<arr[j-1]) //小的总是往前排
arr[j],arr[j-1] = arr[j-1],arr[j];
}
}
console.log("冒泡排序( 交换类换排序 )")
console.log("---------------------------")
var arr = {2;46;5;17;1;2;3;99;12;56;66;21};
bubbleSort(arr,1,#arr)
//输出结果
console.dump(arr)
console.more(1)
/*
*-------------------------------------------------------
* 快速排序
*-------------------------------------------------------*/
console.log("快速排序( 交换类排序 基于分治法 )")
console.log("---------------------------")
parttion = function(arr,from,to){
var x = arr[to];//选定主元(pivot element)
var left = from-1;
for(j=from;to-1){
if(arr[j]<=x){ //如果比主元小
left++;
arr[j],arr[left] = arr[left],arr[j]; //互换,小的去左边
}
}
//主元移中间
var pivot = left+1;
arr[pivot],arr[to] = arr[to],arr[pivot];
return pivot;
}
//快速排序的随机版本
ranParttion = function(arr,from,to){
var pivot = math.random(from,to);
arr[pivot],arr[to] = arr[to],arr[pivot];
return parttion(arr,from,to)
}
quickSort = function(arr,from,to){
if(from<to){
//小的站pivot左边,大的站pivot右边
var pivot = ranParttion(arr,from,to)
quickSort(arr,from,pivot-1);
quickSort(arr,pivot+1,to);
}
}
var arr ={2;46;5;17;1;2;3;99;12;56;66;21};
quickSort(arr,1,#arr);
//输出结果
console.dump(arr);
console.more(1);
Markdown 格式