function getRandomList(n,length){
let list = [];
for(let i=0;i<length;i++){
list.push(Math.round(Math.random()*n))
}
return list;
}
function bubbleSort(list,sortType){
for(let i=0;i<list.length;i++){
for(let j=0;j<list.length;j++){
let temp = list[i];
if((sortType === 'desc' && list[i]>list[j]) || (sortType === 'asc' && list[i]<list[j])){
list[i] = list[j];
list[j] = temp;
}
}
}
return list;
}
function quickSort(arrList,sortType){
var quick = function(arr){
if(arr.length<=1){
return arr
}
const len = arr.length;
let middle = arr.splice(len >> 1,1)[0];
var left = [];
var right = [];
for(let i=0;i<arr.length;i++){
if(sortType === 'desc'){
if(arr[i]<=middle){
right.push(arr[i]);
}else{
left.push(arr[i]);
}
}else{
if(arr[i]<=middle){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
}
return [...quick(left),middle,...quick(right)]
}
let list2 = quick(arrList);
return list2
}
function mergeSort(arr){
if(arr.length<=1){
return arr;
}
let middle = Math.floor(arr.length / 2)
let left = mergeSort(arr.slice(0,middle))
let right = mergeSort(arr.slice(middle,arr.length));
let res = merge(left,right);
return res;
}
function merge(left,right){
let mergeList = [];
let i=0;let j=0;
while(i<left.length && j<right.length){
if(left[i]<=right[j]){
mergeList.push(left[i]);
i++;
}else{
mergeList.push(right[j]);
j++;
}
}
while(i<left.length){
mergeList.push(left[i]);
i++;
}
while(j<right.length){
mergeList.push(right[j]);
j++;
}
return mergeList;
}
let list1 = getRandomList(100,10);
console.log(mergeSort(list1,'asc'));