数组排序、求最值、二分查找
2014-07-07 19:04
471 查看
public class Test16 { /** * @param args */ public static void main(String[] args) { int[] arr=new int[]{4,10,22,18,19,7,15}; int max=getMax(arr); System.out.println(max); bubbleSort(arr); printArray(arr); int index=halfSearch(arr,4); System.out.println("index="+index); } /** * 获取数组最大值 * @param arr */ public static int getMax(int[] arr){ int max=arr[0]; for(int i=1;i<arr.length;i++){ max=(max>arr[i])?max:arr[i]; } return max; } /** * 选择排序 * @param arr */ public static void selectSort(int[] arr){ for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ int temp=arr[j]; arr[j]=arr[i]; arr[i]=temp; } } } } /** * 冒泡排序 * @param arr */ public static void bubbleSort(int[] arr){ for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } /** * 二分查找 * @param arr */ public static int halfSearch(int[] arr,int key){ int min=0; int max=arr.length-1; int mid=(min+max)>>1; while(arr[mid]!=key){ if(min>max){ return -1; } if(key<arr[mid]){ max=mid-1; mid=(min+max)>>1; } else{ min=mid+1; mid=(min+max)>>1; } } return mid; } /** * 打印数组 * @param arr */ public static void printArray(int[] arr){ System.out.print("["); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]); if(i!=arr.length-1) System.out.print(","); else System.out.println("]"); } } }
相关文章推荐
- 数组排序后二分查找
- 首先 随机创建一个数组 然后对数组进行排序 后在进行二分查找
- 二分查找与旋转排序数组 算法题
- 剑指Offer面试题8旋转数组的最小数字(二分查找)附带快排和按年龄排序
- 154.leetcode Find Minimum in Rotated Sorted Array II(hard)[排序数组 重复元素 二分查找]
- java基础知识4--数组,排序,二分查找
- 剑指offer——面试题38:数字在排序数组中出现的次数(利用二分查找来找第一次和最后一次的位置)
- 二分查找的变形,统计数字在排序数组出现的次数
- 码农小汪剑指Offer之35-数字在排序数组中出现的次数 暴力 二分查找的运用
- PHP 数组排序(冒泡排序、选择排序);数组查找(顺序查找、二分查找)
- 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找
- 二分查找的一个题---找出排序数组中绝对值最小的数
- shell数组排序、二分查找
- java数组排序,二分查找
- 小米笔试:循环排序数组二分查找
- 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找
- 数组 获取最值(最大值 最小值)选择排序 冒泡排序 快速排序 半查找(二分查找) 十进制转其他进制法
- LeetCode-Find Minimum in Rotated Sorted Array II-旋转排序数组找最小-二分查找
- 【递归、二分查找】数字在排序数组中出现的次数
- 二分查找排序数组中指定数所在区间