数组的常见操作


 遍历

 方式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/

 

本站声明
本文转载自:http://www.cnblogs.com/d392110851/p/5050905.html     作者:un-known     发布日期:2015/12/16     本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。


 
© 2014-2017 ITdaan.com 粤ICP备14056181号