Java冒泡排序与二分法查找的代码随笔
2024-08-31 15:11:09
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
5
4
最新文章
- Maven把自己的包部署到远程仓库
- VS一次删除多个窗体后报错
- Android网格视图(GridView)
- Swift 中的函数
- iconv命令详解
- 如何写一个简单的Web Server(一)
- POJ 2115 C Looooops(扩展欧几里得)
- 升级cocoapods到1.2 beta版本的方法
- .net 开发经理的月薪
- c#简单实现二维数组和二维数组列表List&;lt;&;gt;的转置
- Jenkins简明入门(一) -- 安装
- 41. First Missing Positive(困难, 用到 counting sort 方法)
- tomcat启动成功后访问却404
- [FJOI2016]神秘数(脑洞+可持久化)
- 给tomcat 配置https
- java序列化问题
- MySQL : 数据库和表的基本操作总结
- 7-26 Harry Potter&#39;s Exam(25 分)
- sitecore 缓存管理器
- 学习Python最好的方法就是实践和教程并行,以下有一些资源和教程,还有一些学习思维导图:
热门文章
- 【Codeforces Round #432 (Div. 1) A】 Five Dimensional Points
- COGS——C 14. [网络流24题] 搭配飞行员
- Php无限层级并显示层级数
- pragma pack,字节对齐
- 折腾了我两天的springboot数据源datasource循环依赖问题,都被搞疯掉了
- C#复习题
- Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7--转
- akka---Getting Started Tutorial (Java): First Chapter
- angular 引入material-ui
- get_mysql_conn_info.py