import java.util.Scanner;
public class BinarySearch {
/*
* 二分查找法
*/
public static int binarySearch(int[] a, int x, int n) {
int left = 0;
int right = n - 1;
while (left <= right) {
int middle = (left + right) / 2;
if (x == a[middle])
return middle;
if (x > a[middle])
left = middle + 1;
else
right = middle - 1;
}
return -1;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 输入数组个数
System.out.println("请输入数组元素的个数:");
int idex = sc.nextInt();
// 生成数组
int[] b = new int[idex];
// 输入元素
System.out.println("请输入元素:");
for (int i = 0; i < b.length; i++) {
b[i] = sc.nextInt();
}
System.out.println("输入的数组内容为:");
for (int a : b) {
System.out.println(a);
}
System.out.println("---------------------------");
// 排序
System.out.println("数组进行排序后输出为:");
b = sort(b);
for (int a : b) {
System.out.println(a);
}
System.out.println("---------------------------");
// 输入要查询的元素
System.out.println("请输入要查询的元素:");
int element = sc.nextInt();
int i = binarySearch(b, element, b.length);
System.out.println(i);
}
// 由小到大排序(进行选择排序)
public static int[] sort(int[] a) {
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
return a;
}
}
分享到:
相关推荐
java基本算法 * 排序算法的分类如下: * 1.插入排序(直接插入排序、折半插入排序、希尔排序); * 2.交换排序(冒泡泡排序、快速排序); * 3.选择排序(直接选择排序、堆排序); * 4.归并排序; ...
"非常经典的Java基本算法"这个主题涵盖了Java编程中的一些核心算法,这些算法对于学习Java基础至关重要。 首先,我们来了解一下什么是算法。算法是一系列明确的步骤,用于解决特定问题或执行特定任务。在计算机科学...
"最新Java基本算法代码示例+注释"的资源正是为帮助开发者理解和实践这些算法而设计的。 该压缩包中的"suanfa"可能包含一系列的Java源代码文件,每个文件都对应一个或多个基础算法的实现,并且配有详尽的注释,以...
"java基本算法源码包.rar" 提供了100种Java实现的基本算法,对于初学者或希望深化算法理解的开发者来说,这是一个宝贵的资源。 这个源码包包含的算法涵盖了数据结构、排序、搜索、图论等多个方面,以下是一些可能...
包含基础的排序算法,查找算法,全排列的逻辑代码,算法的基本思想.
关于java 队列、链队、线性顺序表、栈、二叉树算法 每一部分代码都有详细注解,希望大家互相交流。值得一看哦。
Java算法全卷涵盖了基本算法和图算法,是学习和提升编程技能的重要资源。这份资料主要针对使用Java语言进行算法实现的开发者,适用于那些对ANT、EJB、J2EE、JAVA和SPRING等技术栈有了解或兴趣的人群。下面我们将深入...
C语言和Java实现这些排序算法时,C语言可能会更直接地操作内存,而Java的集合框架提供了方便的接口来实现排序。 2. **搜索算法**:包括线性搜索、二分查找、哈希表查找等。C语言中,可以使用指针直接遍历数组,而在...
这些经典的Java算法示例展示了基础的数学逻辑和编程技巧,包括循环、条件判断、数组操作以及基本的数学运算。理解并掌握这些算法可以帮助开发者提升编程能力和问题解决能力,特别是在处理数值计算、数据分析或优化...
在算法基础部分,书中会详细介绍如何用Java实现基本的逻辑控制结构,如循环、条件判断,以及基础的递归思想。递归是很多高级算法的基础,理解并熟练运用递归对于提升编程能力至关重要。 数据结构部分,书中可能会...
资源名称:Java常用算法手册内容简介:现代的设计...首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着,详细讲解了算法在排序、查找、数 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
本项目"jave-algo-sample"专注于Java基本算法的实现,为开发者提供了一个实践和学习的平台。 这个项目可能包含各种类型的算法,如排序、搜索、图论、动态规划等。排序算法如快速排序、归并排序、冒泡排序、插入排序...
这些算法都是Java语言中最基本和最常用的排序算法。 冒泡排序算法 冒泡排序算法是一种简单的排序算法,它通过反复比较和交换相邻元素来排序。它的时间复杂度为O(n^2),因此对大型数据集的排序效率不高。但是,对于...
### Java遗传算法寻找最优路径 #### 一、遗传算法概览 ...综上所述,这段Java代码通过遗传算法成功地实现了寻找最优路径的目标,通过对代码的具体分析我们可以更加深入地理解遗传算法的基本思想及其实现细节。
这份"Java demo 算法笔记"集合了Java开发中的多种关键知识点,包括但不限于基础语法、框架源码解析、算法实现以及并发处理等内容,对于学习和提升Java编程技能具有极大的帮助。 首先,我们来探讨Java的基础部分。...
JAVA常用基本算法.pdf