1冒泡排序
最简单的一种排序算法。假设长度为n的数组arr,要按照从小到大排序。则冒泡排序的具体过程可以描述为:首先从数组的第一个元素开始到数组最后一个元素为止,对数组中相邻的两个元素进行比较,如果位于数组左端的元素大于数组右端的元素,则交换这两个元素在数组中的位置,此时数组最右端的元素即为该数组中所有元素的最大值。接着对该数组剩下的n-1个元素进行冒泡排序,直到整个数组有序排列。算法的时间复杂度为O(n^2)。
function bubleSort(nums){
for(var i=0;i<nums.length;i++){
for(var j=0;j<nums.length-i-1;j++){
if (nums[j]>nums[j+1]) {
var temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
return nums;
}
2选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放待排序序列的起始位置(或末尾位置),直到全部待排序的数据元素排完。
function selectSort(arr){
for(let i=0;i<arr.length-1;i++){
let minIndex=i;
for(let j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex])
minIndex=j;
}
let temp=arr[i]
arr[i]=arr[minIndex]
arr[minIndex]=temp
}
return arr;
}