1. Java中冒泡排序
public class BubbleSortTest{
public static void bubbleSort(int[] array){
for(int i = 0; i < array.length - 1; i++){
for(int j = 0; j < array.length - i - 1; j++){
if(array[j] > array[j + 1]){
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
System.out.print("第" + (i + 1) + "趟排序:");
for(int k = 0; k < array.length; k++){
System.out.print(array[k] + " ");
}
System.out.println();
}
}
public static void main(String[] args){
int[] array = {4, 7, 8, 9, 3, 2};
bubbleSort(array);
}
}
运行结果:
第1趟排序:4 7 8 3 2 9
第2趟排序:4 7 3 2 8 9
第3趟排序:4 3 2 7 8 9
第4趟排序:3 2 4 7 8 9
第5趟排序:2 3 4 7 8 9
2. Java中二分查找
public class ArraySearchTest{
public static int search(int[] array, int value){
for(int i = 0; i < array.length; i++){
if(value == array[i]){
return i;
}
}
return -1;
}
public static int binarySearch(int[] array, int value){
int low = 0;
int high = array.length - 1;
int middle;
while(low <= high){
middle = (low + high) / 2;
for(int i = 0; i < array.length; i++){
System.out.print(array[i]);
if(i == middle){
System.out.print("#");
}
System.out.print(" ");
}
System.out.println();
if(array[middle] == value){
return middle;
}
if(value < array[middle]){
high = middle - 1;
}
if(value > array[middle]){
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args){
int[] a = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
int value = 8;
int index = search(a, value);
System.out.println(index);
System.out.println("-----------------");
int[] b = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
int index2 = binarySearch(b , 4);
System.out.println(index2);
}
}
运行结果:
7
-----------------
1 2 3 4 5# 6 7 8 9
1 2# 3 4 5 6 7 8 9
1 2 3# 4 5 6 7 8 9
1 2 3 4# 5 6 7 8 9
3
分享到:
相关推荐
自己写的java选择排序,冒泡排序代码,二分查找,还有500个小孩手拉手数三退一问题,供初学者参考一下
Java 中的排序算法包括冒泡排序、快速排序等,而查找算法则有二分查找等。这些算法都是 Java 开发中非常重要的基础知识。本文将对冒泡排序、快速排序、二分查找进行详细的分析和图解。 冒泡排序 冒泡排序是一种...
二分查找算法与冒泡排序算法是计算机科学中两种基础且重要的算法,它们在数据处理和数组操作中扮演着至关重要的角色。 首先,我们来详细探讨递归二分查找算法。二分查找,也称为折半查找,是一种在有序数组中查找...
冒泡排序与二分查找法的结合可能出现在这样的场景:当序列已排序时,我们可以使用二分查找法来快速定位特定元素。二分查找法的基本思想是将序列分为两半,每次都检查中间元素,根据目标值与中间值的比较结果,缩小...
折半查找,又称二分查找,是一种在有序数组中查找特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是目标值,则搜索过程结束;如果目标值大于或小于中间元素,则在数组大于或小于中间元素的那...
### 冒泡排序、快速排序和二分法查找的分析:Java实现 #### 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列...
总结来说,冒泡排序和二分查找都是计算机科学中基础且实用的算法,尽管它们相对简单,但在理解和掌握数据结构与算法的过程中起着至关重要的作用。熟练运用这些算法可以提高编程效率,优化程序性能,是每个程序员必备...
二分查找是一种在有序数组中查找特定元素的高效算法,它的关键在于每次比较后都能将查找范围减半。虽然在未排序的列表中无法使用,但如果数据量大且需要频繁查找,预处理成有序状态后,二分查找将大大提高查找速度。...
描述:冒泡排序 * 特点:算法简单但运行速度慢,算法交换次数和比较次数都...描述:二分查找发 核心算法 * 注意:mid = (low + high) >>> 1 不能使用(low + high)/2,因为如何low+high>Integer.MAX_VALUE时会发生溢出
综上所述,掌握这些排序算法和二分查找技巧对于Java程序员来说至关重要,它们不仅能提升编程能力,也有助于解决实际问题,提高代码的运行效率。通过学习和实践,你将能够更好地应对各种编程挑战。
本文将详细介绍五种经典的排序算法:直接插入排序、冒泡排序、选择排序和快速排序,以及一种查找算法——二分查找,并提供Java语言的实现。 一、直接插入排序 直接插入排序是一种简单直观的排序算法。它的工作原理...
至于二分查找,Java实现可能如下: ```java int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left ) { int mid = left + (right - left) / 2; if (arr[mid] == ...
8. 查找算法:实验中未涉及到查找算法,但可以使用线性查找或二分查找算法来实现查找操作。 9. Java 集合框架:实验中使用了 Vector 类来存储用户输入的整数数据, Vector 是 Java 集合框架的一部分,可以用来存储...
数组是计算机科学中最...不同的编程语言(如Python、Java、C++或JavaScript)可能有不同的语法和库支持,但冒泡排序的基本逻辑是一致的。学习这些示例有助于提高编程技能,同时为学习其他更复杂的排序算法打下基础。
该工具包含有Java一些比较常见的排序算法和查找算法。 排序算法包括:冒泡排序、选择排序 、插入排序、希尔排序、快速排序、归并排序、基数...查找算法包括:线性查找、二分查找、插值查询、斐波那契(黄金分割法)、
1. **二分查找**:二分查找是针对有序数组的一种高效查找算法。在Java中,递归版本首先确定中间元素,如果目标值等于中间元素,则查找成功;若目标值小于中间元素,则在左半部分递归查找,反之在右半部分查找。 2. ...
二分查找的Java实现如下,这里提供了递归和非递归两种方式: ```java package org.cyxl.algorithm.search; public class BinarySearch { private int rCount = 0; private int lCount = 0; // 获取递归次数 ...
直接插入排序是将每个元素逐个插入已排序部分,而折半插入排序则是利用二分查找减少比较次数。希尔排序是插入排序的改进版,通过设置间隔序列来优化插入过程。 2. **交换排序**: 包括冒泡排序和快速排序。冒泡...