ts中几种排序算法的代码实现
自己用ts代码实现了几种排序算法,然后做了一个用各种算法对数组排序的工具类,需要的小伙伴可以自取;
取用之时若有优化方案可以直接贴在评论里哟~
代码贴上:
export default class SortUtil {
/**
* 冒泡排序: 稳定排序
* @param Array
* @returns orderly Array
*/
bubbleSort(arr: Array<number>) {
let temp: number;
let tag = true
for (let j = 0; tag === true; j++) {
tag = false;
for (let i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i]
arr[i] = arr[i + 1];
arr[i + 1] = temp;
tag = true;
}
}
}
return arr;
}
/**
* 选择排序: 不稳定排序
* @param Array
* @returns orderly Array
*/
selectionSort(arr: Array<number>) {
let temp: number;
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j <= arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j]
arr[j] = temp;
}
}
}
return arr;
}
/**
* 插值排序: 稳定排序 可以对数组直接排序, 也可以将一组无序数组插入另一组有序数组中
* @param arr
* @param sortedArray 待排序数组,填就排序并插入arr数组,可选参数
* @returns orderly Array
*/
insertionSort(arr: number[], sortedArray?: number[]) {
if