js 陣列排序和演算法排序

2022-08-02 17:24:06 字數 2978 閱讀 3497

1.演算法排序

a.插入排序

var arr = [23,34,3,4,23,44,333,444];

var arrshow = (function insertionsort(array)

array[j + 1] = key;

}return array;

}else

})(arr);

console.log(arrshow);//[3, 4, 23, 23, 34, 44, 333, 444]

b.二分插入排序

function binaryinsertionsort(array)  

else

}for (var j = i - 1; j >= left; j--)

array[left] =key;

}return

array;

} else

}

c.選擇排序

function selectionsort(array) 

}array[i] =min;

}return

array;

} else

}

d、氣泡排序

function bubblesort(array) }}

return

array;

} else

}

e、快速排序

//

方法一function quicksort(array, left, right)

}quicksort(array, left, i - 1

);quicksort(array, i + 1

, right);

};}

else

}var aaa = [3, 5, 2, 9, 1

];quicksort(aaa,

0, aaa.length - 1

);console.log(aaa);

//方法二

var quicksort =function(arr)

var pivotindex = math.floor(arr.length / 2

);  

var pivot = arr.splice(pivotindex, 1)[0

];  

var left =;

var right =;

for (var i = 0; i < arr.length; i++)

else

}  return

quicksort(left).concat([pivot], quicksort(right));

};

f、堆排序

/*

方法說明:堆排序

@param array 待排序陣列

*/function heapsort(array)

//堆排序

for (var j = heapsize - 1; j >= 1; j--)

} else}/*

方法說明:維護堆的性質

@param arr 陣列

@param x 陣列下標

@param len 堆大小

*/function heapify(arr, x, len)

if (r < len && arr[r] >arr[largest])

if (largest !=x)

} else

}

h、歸併排序

function mergesort(array, p, r) 

}function merge(array, p, q, r)

for (var j = 0; j < n2; j++)

left[n1] = right[n2] =number.max_value;

for (var k = p; k <= r; k++)

else

}}

g、桶排序

/*

方法說明:桶排序

@param array 陣列

@param num 桶的數量

*/function bucketsort(array, num)

var len = array.length, buckets = , result = , min = max = array[0], regex = '

/^[1-9]+[0-9]*$/

', space, n = 0

;num = num || ((num > 1 && regex.test(num)) ? num : 10

);for (var i = 1; i < len; i++)

space = (max - min + 1) /num;

for (var j = 0; j < len; j++)

buckets[index][k + 1] =array[j];

} else

}while (n return

result;

}

i、計數排序

function countingsort(array) 

for (var j = min; j < max; j++)

for (var k = len - 1; k >=0; k--)

return

b;}

j、js自帶的函式sort

arr.sort(function(a,b){

return a-b;

Js 排序演算法 插入排序和希爾排序

企業招聘筆試和面試的時候很喜歡問到排序演算法,時間複雜度,空間複雜度,穩定性,巴拉巴拉。說到排序演算法,那可是大一時候剛接觸c 語言 得有四五年了吧,有點暴露年齡,哈哈哈 學到的東西了,中間一直也沒有用過,基本上不記得多少了。所以特意花了一天多的時間來回顧一下排序演算法,這一篇就先說下插入排序和希爾...

JS陣列排序

function bubblesort array return array vararray1 2,5,1,9 bubblesort array1 1,2,5,9 function usesort array var array1 2,5,1,9 usesort array1 在資料集中,選擇乙個...

js 陣列排序

var array 1,4,8,3,6,12,9,8 function compare val1,val2 array.sort compare document.write array sort 方法按照公升序排列陣列項,會呼叫每個陣列項的tostring 轉型方法,然後比較得到的字串。tostr...