/** * java 模拟有序数组 * @author zm */ public class MyOrderArray { private int size; // 实际个数 private int[] arr; private int max; // 数组最大长度 public MyOrderArray(){ arr = new int[10]; max = 10; } public MyOrderArray(int size){ arr = new int[size]; max = size; } // 升序增加 public void insert(int val){ int i; for(i=0; i<size;i++){ if(val < arr[i]){ // 记录插入点 break; } } // 插入数据时, 移动数据要从后开始移动 for(int j=size; j>i;j--){ arr[j] = arr[j-1]; } arr[i] = val; size++; } // 展示数组内数据 public void display(){ if(this.size > 0){ System.out.print("["); for(int i=0; i<size; i++){ System.out.print(arr[i] +" "); } System.out.print("]"); }else{ System.out.print("[]"); } } // 二分法查找数据 public int binarySearch(int val){ int low = 0; int mid = 0; int high = size; while(true){ mid = (low + high) / 2; if(high < low){ return -1; }else{ if(arr[mid] == val){ return mid; }else{ if(arr[mid] < val){ low = mid + 1; } if(arr[mid] > val){ high = mid - 1; } } } } } public static void main(String[] args) { MyOrderArray array = new MyOrderArray(); array.insert(90); array.insert(30); array.insert(80); array.insert(10); array.display(); // [10 30 80 90 ] System.out.println(""); int index = array.binarySearch(31); System.out.println(index); } }
相关推荐
二分法查找则适用于有序数组,它通过不断将查找区间折半来提高效率。算法首先找到数组的中间元素,然后比较目标值与中间元素的关系,根据比较结果缩小查找范围。这种方法的优点是查找速度快,查找次数以对数增长,但...
二分法查找是一种高效的查找算法,在有序数组中尤其适用。其基本思想是从已排序数组的中间元素开始查找,如果目标值与中间元素相等,则查找成功;如果目标值小于中间元素,则在数组的左半部分继续查找;如果目标值...
功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组) 返回值:关键字在数组中的下标, 返回-1表示未找到 a[]: 要搜索的数组 len: 数组元素个数 key: 要查找的关键字 */ int binSearch(int a[], int ...
本主题将深入探讨“java数组与简单排序”,涵盖有序数组、线性查找和二分法查找等核心概念。 有序数组是指数组中的元素按照特定顺序排列,例如升序或降序。在处理有序数组时,我们可以利用其特性来优化查找和操作...
二分法查找是一种在有序数组中查找元素的高效算法,平均时间复杂度为O(log n)。在实现二分查找之前,确保你的集合是有序的(可以通过`OrderBy`方法实现)。以下是二分查找的代码示例: ```csharp public Student ...
在JavaScript中,我们可以利用`prototype`关键字为内置对象如Array添加自定义方法,以实现二分法查找。 以下是一个在JavaScript中为Array对象添加二分法查找功能的示例: ```javascript Array.prototype.binary...
二分法,又称折半搜索法,是一种在有序数组中查找特定元素的搜索算法。它以其高效的性能在计算方法中占据重要地位,特别是在解决数值计算问题时,如求解方程的根、优化问题和搜索特定值。在VC++6.0环境下实现二分法...
二分法,也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。其基本思想是将数组分为两个部分,每次比较中间元素与目标值,然后根据比较结果决定是在左半部分还是右半部分继续查找。这种方法的效率较高,...
- 二分法查找是一种在有序数组中查找特定元素的算法,它通过不断将查找区间折半来缩小搜索范围,提高查找效率。适用于顺序存储的有序线性表,不适用于链表。 2. **过程设计工具**: - PDL(过程设计语言)、PAD图...
二分法,也称为折半查找法,是一种在有序数组中寻找特定元素的有效算法。在数学和计算中,二分法也被用于求解某些类型的问题,如找到连续函数的零点。在易语言中,我们可以利用二分法来寻找一个函数的零点,即找到...
3. **二分法**:二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。它通过比较中间元素与目标值,将搜索范围不断缩小,从而在平均情况下达到O(log n)的时间复杂度。在这个项目中,二分法可能被...
文件`08.2 二分法查找 【习题解答8-9】`可能包含如何在有序数组中使用二分查找法查找特定元素的示例。 8. **二叉排序树**:二叉排序树是二叉树的一种,它的左子树只包含小于根节点的元素,右子树只包含大于根节点的...
二分查找(也称对分查找)的基本思想是将有序数组分为两半,每次比较中间元素与目标值,根据比较结果决定是在左半部分还是右半部分继续查找,直到找到目标值或者搜索范围为空。这种方法的时间复杂度为O(log n),大大...
【二分法】,也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或...
二分法,又称折半查找,是一种高效的算法,用于在一个有序数组中查找特定元素。在SAS中,可以利用二分法进行变量的重要性评估或筛选。例如,我们可以先对所有变量按照某种标准(如方差、相关性等)排序,然后通过宏...
本篇文章主要讲解了数据的独立性、实体完整性约束、参照完整性约束、用户自定义的完整性约束等概念,并且讨论了算法的有穷性、数组定义、线性结构和非线性结构、栈的特点、链式存储结构、叶子结点个数的计算、快速...
- **`binary_search`**:在有序范围内使用二分法查找特定值。 - **`copy`**:将一个范围内的元素复制到另一个范围。 - **`copy_backward`**:与`copy`类似,但以逆向方式复制元素。 - **`count`**:计算指定范围...
* 检索(查找)算法:包括无序数据序列的查找和有序数据序列的查找(二分法)。 * 遍历算法:包括一维数组和二维数组的遍历、单向链表的遍历、文件的遍历等。 本大纲旨在培养高校学生的计算机编程能力和解决问题...
- **二分法插入排序**:改进了直接插入排序,通过二分查找确定插入位置,减少了比较次数,提高了效率。 - **希尔排序**:基于插入排序,通过将元素按照一定间隔分组进行排序,然后逐渐减小间隔,最后整个数组完成...
2. 二分法检索:这是一种在有序数组中查找元素的高效方法,要求线性表以顺序方式存储并且已经按照关键码值排序,正确答案是A。 3. Internet Explorer 的功能:收藏夹功能允许用户保存感兴趣的网址,方便以后快速...