黑马程序员-java面试_数组

来源:互联网 发布:java中interrupt用法 编辑:程序博客网 时间:2024/06/10 02:35

----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 

1.数组

折半查找

package cn.itcast.test;public class HalfSerch {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[] arr = new int[] { 0, 2, 4, 6, 7, 12, 23 };int index = halfSearch(arr, 3);System.out.println(index);}private static int halfSearch(int[] args, int key) {int min = 0, max = args.length - 1;int mid = (min + max) / 2;while (args[mid] != key) {if (key > args[mid])// key大于中间数min = mid + 1;// 小角标指向mid+1elsemax = mid - 1;if (min > max)return -(min + 1);// key 没被找到返回应该插入的位置+1的负数mid = (min + max) / 2;}return mid;// key 找到返回mid}// 折半的加一种做法,比较高效private static int halfSearch1(int[] args, int key) {int min = 0, max = args.length - 1, mid;while (min <= max) {mid = (min + max) / 2;if (key > args[mid])min = mid + 1;else if (key < args[mid])max = mid - 1;elsereturn mid;}return -(min + 1);}}


 

排序

package cn.itcast.test;import java.util.Arrays;public class ArraysSort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[] arr = new int[] { 3, 1, 10, 24, 23, 11, 43, 22 };selectSort(arr);printArray(arr);bubbleSort(arr);printArray(arr);Arrays.sort(arr);System.out.println(Arrays.toString(arr));printArray(arr);}private static void printArray(int[] arr) {System.out.print("[");for (int i : arr) {if (i == arr[arr.length - 1])System.out.println(i + "]");elseSystem.out.print(i + ", ");}}// 冒泡排序public static void bubbleSort(int[] arr) {for (int x = 0; x < arr.length; x++) {for (int y = 0; y < arr.length - x - 1; y++) {if (arr[y] < arr[y + 1]) {swap(arr, y, y + 1);}}}}// 选择排序public static void selectSort(int[] arr) {for (int x = 0; x < arr.length; x++) {for (int y = x + 1; y < arr.length; y++) {if (arr[x] > arr[y]) {swap(arr, x, y);}}}}private static void swap(int[] arr, int x, int y) {// TODO Auto-generated method stubint temp = arr[x];arr[x] = arr[y];arr[y] = temp;}}


 

----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 

原创粉丝点击