1.冒泡排序
思路:相邻两个数进行比较,如果第一个比第二个大则交换他们的位置。
let arr=[1,9,6,5,4,2,3]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ const temp=arr[i] arr[i]=arr[j] arr[j]=temp } } } console.log(arr)}
2.选择排序
思路:首先在原数组中查找最小值,将最小值放在最前面,接着在剩下的元素中查找,放在最小值的后面,以此类推。
let arr=[144,15,8,12,10,11] for(var i=0;i<arr.length;i++){ let minIndex=i //数组的最小值 for(var j=i;j<arr.length;j++){ if(arr[j]<arr[minIndex]){ //比较位置j的值是否比当前的最小值小, minIndex=j //如果是更新最小值 } } if(i!==minIndex){ //如果最小值和原来的最小值不同,交换位置 let temp=arr[i] arr[i]=arr[minIndex] arr[minIndex]=temp } } console.log(arr)
3.插入排序
1)第一个数已排序
2)将待插项第二个数和第一个数比较,插入适合的位置
3)接着将待插项第三个数和前两个数进行比较,后面的将待插项元素依次和前面进行比较,找到对应的位置并插入
let arr=[18,4,8,9,10,11,] let temp; for(var i=1;i<arr.length;i++){ //从第二个数开始 temp=arr[i]; //临时存储 //从前往后查找插入的位置 for(var j=i;j>0&&arr[j-1]>temp;j--){ arr[j]=arr[j-1] //将大于temp的arr[j]元素后移 } arr[j]=temp } console.log(arr)