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的程序先。