博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java冒泡排序与二分法查找的代码随笔
阅读量:4552 次
发布时间:2019-06-08

本文共 2251 字,大约阅读时间需要 7 分钟。

package javafirst;import java.util.Arrays;class MaoPao{	//升序排列	/**	 * @param arr 要排序的数组	 * @return int型排序好的升序数组	 */	public int[] ascendSort(int[] arr){		for(int i = 0; i < arr.length - 1; i++){			for(int k = 0; k < arr.length - 1 - i; k ++){				if (arr[k] > arr[k+1]){					int temp = arr[k];					arr[k] = arr[k+1];					arr[k+1] = temp;				}			}		}		return arr;	}	//降序排序	/**	 * @param arr 需要排序的数组	 * @return int型降序数组	 */	public int[] descendSort(int[] arr){		for(int i = 0; i < arr.length - 1; i++){			for(int k = 0; k < arr.length - 1 - i; k ++){				if (arr[k] < arr[k+1]){					int temp = arr[k];					arr[k] = arr[k+1];					arr[k+1] = temp;				}			}		}		return arr;	}}class binarySearch{	//二分法查找	    /**	     * @param sortArray 升序排序完的数组	     * @param value 要在数组中查找的数字	     * @return 返回int型索引值	     */	    public int aSearch(int[] sortArray , int value){		int low = 0;		int high = sortArray.length - 1;		while(low <= high){			int middle = (low + high) / 2;			if(value > sortArray[middle]){				low = middle + 1;			}else if(value < sortArray[middle]){				high = middle - 1;			}else{				return middle;			}		}		return -1;	}	    /**	     * @param sortArray 降序排序完的数组	     * @param value 要在数组中查找的数字	     * @return 返回int型索引值	     */	    public int deSearch(int[] sortArray , int value){		int low = 0;		int high = sortArray.length - 1;		while(low <= high){			int middle = (low + high) / 2;			if(value > sortArray[middle]){				high = middle - 1;			}else if(value < sortArray[middle]){				low = middle + 1;			}else{				return middle;			}		}		return -1;	}}public class Test12 {	public static void main(String[] args){		int[] arr1 = {10,29,8,7,9,23,29,38,27,25,34,23};		MaoPao mp = new MaoPao();		//调用其升序方法		for (int i : mp.ascendSort(arr1)){			System.out.print(i + " ");		}		System.out.println();		//调用其降序的方法		for(int i :mp.descendSort(arr1)){			System.out.print(i + " ");		}				System.out.println();		int[] arr2 = mp.ascendSort(arr1);//排序好的升序数组		binarySearch bs = new binarySearch();		System.out.println(bs.aSearch(arr2, 23));//调用的为升序二分法的查找				//因为数组是降序,所以调用二分法的降序查找方法		System.out.println(bs.deSearch(mp.descendSort(arr1), 27));	}	}

  输出结果

7 8 9 10 23 23 25 27 29 29 34 38 38 34 29 29 27 25 23 23 10 9 8 7 54

  

转载于:https://www.cnblogs.com/whytohow/p/4864513.html

你可能感兴趣的文章
Windows下启动停止Oracle11g服务-为解决系统变慢而生
查看>>
基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践
查看>>
null与undefind的区别(转)
查看>>
Web前端的状态管理(State Management)
查看>>
EF|CodeFirst数据并发管理
查看>>
[Java] Spring boot2 整合 Thymeleaf 后 去除模板缓存
查看>>
java并发:阻塞队列
查看>>
[NOI2001] 炮兵阵地 (状压Dp经典例题)
查看>>
Selenium三种等待元素的方式及代码,需要特别注意implicitlyWait的用法
查看>>
sublime Text2下安装php code sniffer插件
查看>>
在Emacs中使用plantuml画UML图
查看>>
[启动]Linux启动流程rcN.d rcS.d rc.local等
查看>>
Resouse of Buddhism
查看>>
Android实用代码七段(三)
查看>>
打造一个壁纸爬虫来爬你的老婆
查看>>
mysql 给用户设置权限
查看>>
K-Means算法总结
查看>>
TrunCateTable 和Delete Table 的区别
查看>>
Mybatis <where>标签
查看>>
updatefile.sh - Linux下代码更新脚本
查看>>