function insert1(arr){
var temp;
for(var i=1;i<arr.length;i++){
for(j=i;j>0;j--){
if(arr[j]<arr[j-1]){
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]= temp;
}
}
}
console.log(arr);
}
/*冒泡排序*/
function bubbleSort(array) {
for (var i = 0; i < array.length; i++) {
for (var j = array.length; j > 0; j--) {
if (array[j] < array[j - 1]) {
var temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
console.log(array);
}
/*选择排序*/
function selectSort(array) {
var min, temp; ;
for (var i = 0; i < array.length; i++) {
min = i;
for (var j = i + 1; j < array.length; j++) {
if (array[min] > array[j])
min = j;
}
if (min != i) {
temp = array[i];
array[i] = array[min];
array[min] = temp;
}
}
}
/*希尔排序*/
function shellSort(arr){
len=arr.length;
for(var fraction=Math.floor(len/2);fraction>0;fraction=Math.floor(fraction/2)){
for(var i=fraction;i<len;i++){
for(var j=i-fraction;j>=0&&arr[j]>arr[fraction+j];j-=fraction){
var temp=arr[j];
arr[j]=arr[fraction+j];
arr[fraction+j]=temp;
}
}
}
console.log(arr);
}
//归并排序
function mSort(source, dest, s, t) {
var m; //取中间值
var dest2 = new Array();
if (s == t) {
dest[s] = source[s];
}
else {
m = Math.floor((s + t) / 2);
mSort(source, dest2, s, m); //排序左半部分
mSort(source, dest2, m+1 , t);//排序右半部分
merge(dest2, dest, s, m, t);//合并
}
console.log(dest);
}
var arr=[];
mSort([4,3,5,2,1,7,4,5,11,8],arr,0,9);
//将两个数组按照从小到大的顺序融合
//source原数组
//dest排序后的数组
//s第一个下标
//m第二个数组下标
//总长度
function merge(source, dest, s, m, n) {
for (var j = m+1, k = s; j <= n && s <= m; k++) {
if (source[s] < source[j]) {
dest[k] = source[s++];
}
else {
dest[k] = source[j++];
}
}
//将剩余排不完的有序数组加入到dest的末端
if (s <= m) {
for (var l = 0; l <= m - s; l++) {
dest[k + l] = source[s+l];
}
}
if (j <= n) {
for (var l = 0; l <= n - j; l++) {
dest[k + l] = source[j+l];
}
}
}
//快速排序
function quickSort(arr){
var len = arr.length,
lesser = [],
greater = [],
pivot,
meCall = arguments.callee;
if(len == 0){
return [];
}
pivot = arr[0];
for(var i = 1;i < len; i++){
if(arr[i] < pivot ){
lesser.push(arr[i])
}else{
greater.push(arr[i])
}
}
return meCall(lesser).concat(pivot,meCall(greater));
}