天天看點

黑馬程式員 03選擇排序,冒泡排序,折半查找

---------------------- android教育訓練、java教育訓練、期待與您交流! ----------------------

1、折半查找

class SearchArray

{

 public static void main(String[] args)

 {

  int[] arr={2,3,4,5,6};

  if(index==-1)

  {

   System.out.println("該元素不存在");

  }

  else

   System.out.println("該元素的角标是:"+index);

  int[] arr={2,3,4,5,6,7};

  int index=halfSearch(arr,4);

  System.out.println("index="+index);

 }

 //折半查找:必須是對有序的數組進行查找

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

 {

  int min,mid,max;

  min=0;

  max=arr.length-1;

  while(min<=max)

  {

   mid=(min+max)/2;

   if(key>arr[mid])

   {

    min=mid+1;

   }

   else if(key<min)

   {

    max=mid-1;

   }

   else

    return mid;

  }

  return -1;

 }

 //對數組中的元素進行查找,擷取該元素第一次在數組中出現的位置。

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

 {

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

  {

   if(arr[x]==key)

   {

    return x

   }

  }

  return -1;

 }

}

2、冒泡排序,選擇排序

import java.util.*;

class  ArrayTest2

{

 public static void main(String[] args)

 {

  int[] arr = {4,1,2,6,5,7,3};

  printArray(arr);

  //selectSort(arr);

  //bubbleSort(arr);

  Arrays.sort(arr);//這是java提供的排序方法。開發時用它最友善。

  printArray(arr);

 }

 public static void bubbleSort(int[] arr)

 {

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

  {

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

   {

    if(arr[y]>arr[y+1])

    {

     swap(arr,y,y+1);

    }

   }

  }

 }

 public static void selectSort(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);

    }

   }

  }

 }

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

 {

  int temp = arr[x];

  arr[x] = arr[y];

  arr[y] = temp;

 }

 public static void printArray(int[] arr)

 {

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

  {

   if(x!=arr.length-1)

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

   else

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

  }

 }

}

---------------------- android教育訓練、java教育訓練、期待與您交流! ----------------------

---------------------- android教育訓練、java教育訓練、期待與您交流! ----------------------