算法基础之选择排序

说一下选择排序的基本算法 。 现在有这样一个数组,[ 3 , 4 ,6 , 1 , 7 , 2 , 5 , 8]  我们对其进行从小到大的排序 。 现在我们默认数组中第一个元素就是数组中的最小值,将它与其后边的所有元素进行比较,当有元素的值小于当前默认最小元素时,交换这两个元素的顺序。

当数组第一个元素小于后边所有元素时,我们再用数组第二个元素与后面所有元素进行比较。依次类推,这样我们执行到第n轮,前n个数均是已经排好序的。

  var arr=[3,4,6,1,7,2,5,8];

   for(var i=0;i<arr.length-1;i++)  //arr[ i] 代表当前拿出来做比较的数

   {                                // 从第一个开始拿 ,一直拿到length-1个

                                    // 因为当执行到length-1次,数组前length-1个元素

                                    //是已经排好序的。

      for(var j=i+1;j<arr.length;j++)

      {

          if(arr[i]>arr[j])   // arr[j] 代表从当前拿出的数往后所有的数

          {

              temp=arr[i];

              arr[i]=arr[j];

              arr[j]=temp;

          }

      }

  } 

算法复杂度o(n²) ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值