数组的排序及查找

1.选择排序:每一轮选择该轮第一个数和后面的每一个数进行比较,满足条件交换位置。

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


   2.冒泡排序:每一轮进行相邻的两个数进行比较,满足条件交换位置。
                   
 for(int i=0;i<arr.length-1;i++)
 {
     for(int j=0;j<arr.length-1-i;j++)
     {

         if(arr[j]>arr[j+1])
         {
              int tmep=arr[j];
              arr[j]=arr[j+1];
              arr[j+1]=temp;
          }
      }
 }


     查找
              基本查找:有数组中的第一个元素开始进行比较查找。
          二分查找:
               优点:查找速度快
               确定:只能对有序的数据进行查找(限定已有的数组是小----大排序)
               原理:将我们需要查找的数据和中间元素进行比较,
                     如果中需要查找的数据和中间元素相等,直接返回相应元素的下标
                     如果中需要查找的数据和中间元素大于,在中间元素的右边进行查找    
                     如果中需要查找的数据和中间元素小于,在中间元素的左边进行查找

          
<span style="white-space:pre">	</span>  int min=0;
          int max=arr.length-1;
          int mid=(min+max)/2;

          while(arr[mid]!=value)
          {
               if(arr[mid]>value)
               {
                    max=mid-1;    
               }
               else
               {

                    min=mid+1;
               }
               if(min>max)
               {
                    return -1;
               }
               mid=(min+max)/2;

              
          }
          return mid;    


         
          数组的倒置

          将数组的元素由中间隔开,进行元素的对调
         
         
 <span style="white-space:pre">	</span>for(int i=0;i<arr.length/2;i++)
          {
               int temp=arr[i];
               arr[i]=arr[arr.length-1-i]
               arr[arr.length-1-i]=temp;
          } 

 

 

 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值