function insertSortArray(sort_Array,x){ //一趟排序的算法
for(var i=0;i<sort_Array.length;i++){
if(sort_array[i]>=x){ //找到插入點
for (var j=sort_array.length; j>i; j--){ //后挪空出位置
sort_array[j]=sort_array[j-1]
}
sort_array[i]=x; //插入
break; //任務結束,退出循環
}
}
return sort_array; //返回處理后的數組
}
function SortArrayByInsert(array){ //主排序算法
var returnValue=new Array(1); //定義成功排序后的返回值,初始大小為一位
returnValue[0]=array[0]; //在結果后置入排序前的第一位
for (i=1; i<array.length; i++){
returnValue=insertSortArray(returnValue,array[i]); //調用一趟排序函數,從第二個元素開始,依次使用
}
return returnValue;
}
C版:
void
InsertionSort(ElementType A[],int N)
{
int j,p;
Element Type tmp;
for(p=1;p<N;P++)
{
Tmp=A[p];
for(j=P;j>0&&A[j-1]>Tmp;j--)
A[j]=A[j-1];
A[j]=Tmp;
}
}
兩版比較,JS的方法不夠簡潔。利用C的算法寫JS的程序先。
