- public class ArrayTest{
- //1、选择排序
- public static void selectSort(int[] arr)
- {
- for (int x=0; x<arr.length-1; x++)
- {
- //每次循环之后把最小的数放在数组下标为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;
- }
- }
- }
- }
- //2、冒泡排序
- public static void bubbleSort(int[] arr)
- {
- for(int x=0; x<arr.length-1; x++)
- {
- //每次循环之后把最小的元素放在数组的arr.length-1-x的位置上
- for(int y=0; y<arr.length-x-1; y++)
- {
- if(arr[y]<arr[y+1])
- {
- int temp = arr[y];
- arr[y] = arr[y+1];
- arr[y+1] = temp;
- }
- }
- }
- }
- //3、对给定的数组进行反转
- public static void reverseArray(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;
- }
- }
- /*
- * 4、折半查找 提高效率,但是必须要保证该数组是有序的数组
- */
- public static int halfSearch(int[] arr,int key)
- {
- int min,max,mid;
- min = 0;
- max = arr.length-1;
- mid = (max+min)/2;//数组的中间下标
- while(arr[mid]!=key)
- {
- if(key>arr[mid])
- min = mid + 1;
- else if(key<arr[mid])
- max = mid - 1;
- if(min>max)
- return -1;//没有在数组中找到该元素
- mid = (max+min)/2;
- }
- return mid;
- }
- public static void main(String[] args) {
- int[] arr = {5,1,6,4,2,8,9};
- selectSort(arr);//{1,2,4,5,6,8,9}
- bubbleSort(arr);//{9,8,6,5,4,2,1}
- reverseArray(arr);//{9,8,2,4,6,1,5}
- int[] arr1 = {1,3,4,5,7,8,10,20};
- int index = halfSearch(arr1,8);
- if(index == -1){
- System.out.println("查找的元素不存在");
- }else {
- System.out.println(index);//5
- }
- }
- }
复制代码 |