基本排序算法
冒泡排序(Bubble Sort)
-
基本思想
冒泡排序是依次对数组内的两个元素进行比较,满足条件交换位置,
例:给定数组[2,1,7,9,5,8],按照从左到右,从小到大的顺序排列。
BubbleSort=(arr:Array<number>):Array<number>=>{
let arrs=arr;
let length=arr.length;
arrs.forEach((element,index) => {
for( let i=index;i<length-1;i++){
if(arrs[i]>arrs[i+1]){// 看起来像是满足条件交换,其实是交换
let temp=arrs[i];
arrs[i]=arrs[i+1];
arrs[i+1]=temp;
}
}
});
return arrs;
}
-
实现
给定一个指针,指向当前数组第一个,指针指向是当前数组循环一轮,每次循环结束之后,数组的末端都是最大的。按照顺序排列的。周而复始,循环到最后就是整个数组的排列了。
插入排序(Insertion Sort)
-
基本思想
不断的将尚未排好序的数插入到已经排好序的部分。
InsertingSort=(arr:Array<number>):Array<number>=>{
let arrs=arr;
arrs.forEach((element,index) => {
let current=element;
for( let i=index-1;i>=0;i--){
if(current<arrs[i]){
let temp= arrs[i];
arrs[i]=current;
arrs[i+1]=temp;
}
}
});
return arrs;
}