javascript四大大排序:冒泡 选择 快速 插入

1、冒泡排序:
这个排序几乎全部程序员第一次了解的排序方式

  • 原理:相邻两个数进行比较每一次循环确定一个最大或者最小值
    在这里插入图片描述
  • 代码:
for(int i =0;i < score.length - 1;i++)
 {    
 for(int j = 0;j <  score.length - 1-i;j++)// j开始等于0,     
    {    
 	   if(score[j] < score[j+1])       
   	  {       int temp = score[j];      
       	     	 score[j] = score[j+1];                
          	   score[j+1] = temp;    
          }     
     }       
  }

2、选择排序(例子从小到大)

  • 原理:他是依次找到最小的放在前面

  • 在这里插入图片描述

  • 代码

1、for(var i=0;i<arr.length-1;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;
			            		 
			             		   }
			             }
			           	 
			    }
			    2、 for(i=0;i<arr.length-1;i++){
      		  minIndex=i;
        		for(j=i+1;j<arr.length;j++){
        		    if(arr[j]<arr[minIndex]){
               		 minIndex=j;
          			  }
       		 }
	    temp=arr[i];
	    arr[i]=arr[minIndex];
	    arr[minIndex]=temp;
	    }

3、插入·排序

  • 原理:它把数组分为两部分有序部分和无序部分

  • 在这里插入图片描述

  • 刚开始有序部分只有第一位 无序数组剩下的 无序的第一位要加入有序 就要进行排序相邻之间进行排序直到把加入的排序完成

  • 代码:

for(var i=1;i<arr.length;i++)
{
for(var j=i-1;j>=0;j--)
{
if(arr[j+1]<arr[j])
{
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
alert(arr);
}
}
}

4、快速排序

  • 原理:
  • 快速排序;
    1、先从数列中取出一个数作为基准数。
    2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
    3.再对左右区间重复第二步,直到各区间只有一个数。先从后向前找,再从前向后找。
    后面找小的,前面找大的

在这里插入图片描述

  • 代码:
var quickSort = function(arr) {
  if (arr.length <= 1)
               { 
                return arr; 
               }
  var pivotIndex = Math.floor(arr.length / 2);
  //Math.floor()的返回值为Number类型。返回小于或等于参数number的最大整数。
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var 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));
};
  • 总结:这个快速排序涉及递归至少由上图应该很好了解快速排序到底是如何操作的left和right就是装两边的数组的对他们分别进行递归直到左右数组只剩一个或者没有就截至了
    5、希尔排序
    在这里插入图片描述
    6、归并排序
    在这里插入图片描述
    7、桶排序

在这里插入图片描述
8、计数排序在这里插入图片描述
9、基数排序

在这里插入图片描述
10、堆排序
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值