你的位置:首页 > Java教程

[Java教程]数组的常见操作


 遍历

 方式1: 

  public static void printArray(int[] arr) {    for(int x=0; x<arr.length; x++) {    //arr.length获取数值长度      System.out.println(arr[x]);    }  }

 方式2: 

  public static void printArray(int[] arr) {    System.out.print("[");    for(int x=0; x<arr.length; x++) {      if(x == arr.length-1) {        System.out.println(arr[x] + "]");      }      else {        System.out.println(arr[x] + ",");      }    }  }

 最值 

最大值 

  public static int getMax(int[] arr) {    int max = arr[0];    for (int x=1; x<arr.length; x++) {      if (arr[x] > max);        max = arr[x];    }    return max;  }

 最小值 

  public static int getMin(int[] arr) {    int min = arr[0];    for (int x=1; x<arr.length; x++) {      if (arr[x] < min);        min = arr[x];    }    return min;  }

 逆序 

方式1: 

  public static int reverse (int[] arr) {    for (int x=0; x<arr.length/2; x++) {      int temp = arr[x];      arr[x] = arr[arr.length-1-x];      arr[arr.length-1-x] = temp;    }  }

 方式2: 

  public static int reverse(int[] arr) {    for (int start=0,end=arr.length-1; start<=end; start++,end--) {      int temp = arr[start];      arr[start] = arr[end];      arr[end] = temp;    }  }

 查表 

  public static String getString(String[] strArray,int index) {    return strArray[index];  }

 基本查找(数组无序) 

方式1: 

  public static int getIndex(int[], int value) {    for (int x=0; x<arr.length; x++)      if(arr[x] == value) {        return x;      }    return -1;  }

 方式2: 

  public static getIndex(int[] arr, int value) {    int index = -1;    for(int x=0; x<arr.length; x++)      if(arr[x] = value) {        index = x;        break;      }    return index;  }

 二分查找

前提:数组中的元素要有序

  public static int halfSeach_2(int[] arr,int key){    int min,max,mid;    min = 0;    max = arr.length-1;    mid = (max+min)>>1; //(max+min)/2;    while(arr[mid]!=key){      if(key>arr[mid]){        min = mid + 1;      }      else if(key<arr[mid])        max = mid - 1;      if(max<min)        return -1;      mid = (max+min)>>1;      }    return mid;  }

排序 

冒泡排序

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

  public static void bubbleSort(int[] arr) {    for(int x=0; x<arr.length-1; x++) {      for(int y=0; y<arr.length-1-x; y++) {        if(arr[y] > arr[y+1]) {          int temp = arr[y];          arr[y] = arr[y+1];          arr[y+1] = temp;        }      }    }  }

选择排序

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

  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]) {          int temp = arr[x];          arr[x] = arr[y];          arr[y] = temp;        }      }    }  }

快速排序

快速排序的思想是分治思想。主要原理是将数组分为A[p..q-1] 和A[q+1..r],然后调整元素使得A[p..q-1]小于等于q,也小于等于A[q+1..r]。然后不断的递归,到最后就排序完成。

 

更多算法教程,请移步:

http://ahalei.blog.51cto.com/