数组基本操作
2013-05-08 14:51
218 查看
开始学习JAVA,为了熟悉java的语言环境,于是采用很笨拙的方式,编写数组的基本排序算法。
个人觉得帮助还是蛮大的,也请论坛的牛人推荐下学习java的好的方法。
package javabase; public class Arraybase { public static void main(String[] args){ int[] array = {11,13,2,5,4,6,8,7,9,11,20,18,19}; int[] array_1 = {1,2,3,4,5,6,7,8,9,10}; printArray(array); sumArray(array); getMax(array); getMin(array); selectSort(array); bubbleSort(array); insectSort(array); shellSort(array); quickSort(array); binarySearch(array_1,10); } /* * 定义数组输出功能 */ public static void printArray(int[] arr){ System.out.print("["); for(int i=0;i<arr.length;i++){ if(i==arr.length-1){ System.out.println(arr[i]+"]"); } else System.out.print(arr[i]+", "); } } /* * 定义数组求和功能 * */ public static void sumArray(int[] arr){ int sum=0; for(int i=0;i<arr.length;i++){ sum+=arr[i]; } System.out.println(sum); } /* * 获取最值,包括最大值和最小值 */ public static void getMax(int[] arr){ int max = arr[0]; for(int i=1;i<arr.length;i++){ if(max<arr[i]) max=arr[i]; } System.out.println(max); } public static void getMin(int[] arr){ int min = arr[0]; for(int i=1;i<arr.length;i++){ if(min>arr[i]) min=arr[i]; } System.out.println(min); } /* * 交换数组元素 */ public static void swapArray(int[] arr, int firstIndex, int lastIndex){ int temp=arr[firstIndex]; arr[firstIndex]=arr[lastIndex]; arr[lastIndex]=temp; } /* * 对数组进行选择排序 */ static void selectSort(int[] arr){ for(int i=0;i<arr.length-1;i++){ int key=i; for(int j=i+1;j<arr.length;j++){ if(arr[key]>arr[j]){ key=j; } } if(key!=i){ swapArray(arr,i,key); } } printArray(arr); } /* * 对数组进行冒泡排序 */ static void bubbleSort(int[] arr){ 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 temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } printArray(arr); } /* * 对数组进行插入排序 */ static void insectSort(int[] arr){ for(int i=1;i<arr.length;i++){ int temp=arr[i]; int j=i-1; while(j>=0&&temp<arr[j]){ arr[j+1]=arr[j]; j--; } arr[j+1]=temp; } printArray(arr); } /* * 对数组进行shell排序 */ static void shellSort(int[] arr){ for(int h=arr.length/2;h>0;h/=2){ for(int i=h;i<arr.length;i++){ int j=i%h; while(arr[j]<arr[i]) j+=h; int temp=arr[i]; for(int k=i-h;k>=j;k-=h){ arr[k+h]=arr[k]; } arr[j]=temp; } } printArray(arr); } /* * 对数组进行快速排序 */ static void quickSort(int[] arr){ int low=0, high=arr.length-1; int key=arr[low]; while(low!=high){ while(arr[high]>key&&high>low) high--; arr[low]=arr[high]; while(arr[low]<key&&low<high) low++; arr[high]=arr[low]; } arr[high]=key; printArray(arr); } /* * 对数组二分查找排序 */ static int binarySearch(int[] arr,int num){ int low=0,high=arr.length-1; while(low<=high){ int middle=(low+high)>>1; if(num==arr[middle]){ System.out.print(middle); return middle;} else if(num>arr[middle]){ low=middle+1; }else high=middle-1; } return -1; } }
个人觉得帮助还是蛮大的,也请论坛的牛人推荐下学习java的好的方法。
相关文章推荐
- 2.Java数组基本操作
- 数组的基本操作
- 树状数组----构建与基本操作
- 算法-基础(一)数组基本操作 和 静态方法(后面编写算法的时候会用到)
- OC中数组的基本操作
- 数组Array的基本操作
- 树状数组基本操作
- 舌尖上的javascript数组和字符串基本操作
- Numpy-数组的基本操作
- Javascript数组、json对象基本操作
- 数组Array的基本操作,进阶操作,多维数组
- 数组基本操作,问题出在哪?
- 数组的基本操作
- 13数组实现顺序堆栈的基本操作
- Swift对数组的常用基本操作
- Swift学习记录 -- 7.数组的基本操作
- HTML数组的基本操作(增删改查、删除重复元素)
- 实现基于静态数组的顺序表的以下基本操作:
- [原创]Scala学习:数组的基本操作,数组进阶操作,多维数组