您的位置:首页 > 其它

对数组的排序,折半查找,遍历,求取最大值

2014-12-21 13:45 204 查看
ArrayTools.java

//遍历数组,最大值,排序,二分查找

/**

 

 <h1>ArrayTools操作数组的便捷类,包括对数组的排序,折半查找,遍历,求取最大值</h1>

 @author 石松

 @version 1.0

*/

public class  ArrayTools

{

 public ArrayTools(){} 

 /**

 binarySearch方法实现了对数组的折半查找法,如果元素存在于数组中,

 返回所在位置的角标,不在数组中,返回小于0的数

 @param arr ,key 传递数组和需要查找的关键字

 @return mid 所在数组的下标

 */

    public static int binarySearch(int[] arr ,int key)

 {

   int min = 0;

   int max = arr.length - 1;

   int mid = 0;

   while(min <= max)

  {

         mid = (min+max)/2;

   if(key > arr[mid])

   {

      min = mid + 1;

   }

   else if(key < arr[mid])

   {

     max = mid - 1;

   }

   else

   {

     return mid;

   }

     }

  return -1;

 }

     /**

   select方法,对数组进行排序,次算法是一个经过优化的算法

   @param arr 传递整型数组

 */

 public static void select(int[] arr)

 {

   for(int x = 0 ; x < arr.length - 1 ;x++)

  {

        for(int y = x + 1; y < arr.length; y++)

      {

        if(arr[x] > arr[y])

       {

           swap(arr,x,y);

       }

         }

     }

 }

   /**

    数组换位的专用函数

   */

 private static void swap(int[] arr , int x ,int y)

 {

     int temp = arr[x];

  arr[x] = arr[y];

  arr[y] = temp;

 }

 /**

  getMax方法,获取数组中的最大值

  @param arr 传递整型数组

  @return max 最大值

 */

    public static int getMax(int[] arr)

 {

   int max = 0;

   for(int x = 1 ; x < arr.length ; x++)

   {

      if(arr[max] < arr[x])

    {

     max = x;

   }

   }

   return arr[max];

 }

    /**

   printArr方法,将数组打印在控制台上

  @param arr 传递整型数组

 */

 public static void printArr(int[] arr)

 {

    System.out.print("[");

   for(int x = 0; x < arr.length; x++)

   {

     if((x!= arr.length-1))

   {

     System.out.print(arr[x]+",");

   }

   else

   {

   System.out.print(arr[x]+"");

   }

   }

   System.out.println("]");

 }

}

 

 

 

TestArrayArray.java

package arraytools;

class TestArrayTools

{

 public static void main(String[] args)

 {

  int[] arr ={3,2,56,78,23,723,65};

  ArrayTools.printArr(arr);

  ArrayTools.select(arr);

  ArrayTools.getMax(arr);

  ArrayTools.printArr(arr);

  

 /* for (int x =0; x<args.length;x++ )

  {

   System.out.println(args[x]);

  }*/

 }

}

 

结果:

[3,2,56,78,23,723,65]

723

[2,3,23,56,65,78,723]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  遍历
相关文章推荐