1//数组本身sort排序
var arr=[1,2,14,65,3,97,24] //必须设置一个排序函数 a-b升序 b-a降序 arr.sort(function(a,b){
return a-b }) console.log(arr);//[1, 2, 3, 14, 24, 65, 97]
//冒泡 //相邻两个比较,小的去前面,再开始第二轮比较 function fn (arr){
for(var i =0;i<arr.length;i++){
for(var j=0;j<arr.length-i;j++){
///相邻两个比较,小的去前面 if(arr[j]>arr[j+1]){
var temp=arr[j]; arr[j]=arr[j+1] arr[j+1]=temp } } } return arr; } console.log(fn(arr));
//========选择排序============= //外层循环遍历每一项,第一次用第一个数跟后面所有的比较,小的去第一个; //第二次用第二个跟后面所有比较,小的去第二个 function xuanze (arr){
for(var i =0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } return arr; } console.log(xuanze(arr));
快排
function quickSort(arr){
//如果数组<=1,则直接返回 if(arr.length <= 1) return arr var zhongIndex = Math.floor(arr.length / 2) //取出中间下标对的值,原值删除 var zhong = arr.splice(zhongIndex, 1)[0] //定义左右数组 var left = [], right = [] //比基准小的放在left,比基准大的放在right for(var i = 0; i < arr.length; i++){
if(arr[i] <= zhong){
left.push(arr[i]) }else{
right.push(arr[i]) } } //最后将数组连接 ,左右数组递归调用 return quickSort(left).concat([zhong],quickSort(right)) } console.log(quickSort(arr));
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216919.html原文链接:https://javaforall.net
