黑马程序员-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培训、期待与您交流! ----------------------
- 黑马程序员-java面试_数组
- 黑马程序员_日记2--Java数组
- 黑马程序员—java基础_数组
- 黑马程序员 java数组面试必备一
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- 黑马程序员_数组
- quicksort
- 第六章 - 图像变换 - 卷积边界(cvCopyMakeBorder)
- ASM与存储容灾
- 将图片序列化和饭序列化
- mergesort
- 黑马程序员-java面试_数组
- 第六章 - 图像变换 -梯度和Sobel导数(cvSobel)
- IOS学习笔记---segue
- 【黑马程序员】java-正则表达式
- 国际佛教僧尼总会声明
- 常用汽车电子工具集的开发——网络协议
- WPF获取窗口句柄
- Easyui和IE浏览器的兼容问题
- 【Matlab学习笔记】【编程实例】二(将两幅灰度图片调整成相同的尺寸,然后左右拼接到一起)