排序去重
/*
js去重算法
https://www.cnblogs.com/bear-blogs/p/10808399.html
*/
// 1 去重算法
function quchong(arr){ let res=[] for(let i=0;i<arr.length;i++){ if(res.indexOf(arr[i])==-1){ res.push(arr[i]) } } return res }
//2 冒泡排序
function maoPao(arr){ for(let i=0;i<arr.length;i++){ for(let j=i;j<arr.length;j++){ if(arr[i]>arr[j]){ let item=arr[i] arr[i]=arr[j] arr[j]=item } } } return arr }
//3 选择排序
//遍历数组,设置最小值的索引为0,如果取出的值比当前最小值小,就替换最小值索引,遍历完成后,将第一个元素
//和最小值索引上的值交换。重复上树操作
function xuanZe(arr){ for(let i=0;i<arr.length;i++){ let k=i; for(let j=i;j<arr.length;j++){ if(arr[j]<arr[k]){ k=j; } } if(k!==i){ let item=arr[i] arr[i]=arr[k] arr[k]=item } } return arr }
// 4 快速排序
// 在数据集之中,找一个基准点,建立两个数组,分别存储左边和右边的数组,利用递归进行比较,最后将基准和左右数组三个值给合并起来
//阮一峰写的好一点
function quickSort(arr){ if(arr.length<=1){ return arr } let right=[] let left=[] let pivotIndex=Math.floor(arr.length/2) let pivot=arr.splice(pivotIndex,1)[0] //取得基准值,同时将原数组删去了基准值 for(let i=0;i<arr.length;i++){ if(arr[i]<pivot){ left.push(arr[i]) } else{ right.push(arr[i]) } } return quickSort(left).concat([pivot],quickSort(right)) } let arr=[1,2,123,12,123,12,3123,12,3,4235,5,46,5876,87,65,3,431,] console.log(quickSort(arr))