对一个数组进行一个数据的查找,首先进行一个排序,然后再进行折半查找!
/**
* 直接插入排序
* @param data
*/
public static void insertSort(int [] data)
{
//i为第几趟排序,第一趟初始化数据(1),对顺序表Data中的记录Data[1...n]按递增序进行插入排序
for(int i =2 ; i< data.length ; i++)
{
int tempdata = 0 ;
if(data[i] < data[i-1])
{
tempdata = data[i];
data[i] = data[i-1];
//从右向左在有序区 Data[1..i-1]中查找Data[i]的插入位置
for(int j =i-2; j>=0&&tempdata<data[j] ; j--)
{
// 向后移位
data[j+1] = data[j];
// 在正确的位置插入正确的数据
data[j]= tempdata ;
}
}
}
}
/**
* 折半查询
* @param a
* @param b
* @return
*/
public static int find1(int[] a, int b) {
int low = 1;
int high = a.length;
//只有当low的值小于等于high时,才需要进行查找
while (low <= high)
{
//middle为长度
int middle = (low + high) / 2;
//在左边继续查找
if (b < a[middle - 1])
{
high = middle - 1;
//find(a,b);
}
//在右边查找
else if (b > a[middle - 1])
{
low = middle + 1;
// find(a,b);
}
// 找到了
else if (b == a[middle - 1])
{
System.out.println(middle);
return middle;
}
}
//没找到
System.out.println(-1);
return -1;
}
分析:待续
分享到:
相关推荐
这里,我们围绕“C语言排序查找源代码”这个主题进行深入探讨。 首先,让我们逐一分析这些文件名所代表的算法: 1. **快速排序.c**:快速排序是一种基于分治思想的高效排序算法,由C.A.R. Hoare在1960年提出。它的...
这个压缩包文件“多种排序查找算法java实现”显然包含了用Java语言编写的多种经典排序和查找算法的源代码。下面,我们将详细讨论这些算法及其在实际应用中的价值。 首先,我们来看排序算法: 1. **选择排序**:这...
本压缩包文件包含的“c程序 排序 查找”聚焦于C语言中两个核心概念:排序和查找,这些都是数据处理和分析的基础。下面将详细阐述这两个知识点及其在实际中的应用。 首先,我们来探讨“排序”。排序是指将一组数据...
下面我们将深入探讨这些常用排序查找算法。 首先,我们来看看排序算法。排序是一系列将一组数据按照特定顺序排列的过程。这里提及的"【排序结构1】插入排序"是一种简单直观的算法,它通过构建有序序列,对于未排序...
本文将深入探讨基于二叉排序树的排序查找应用,以及相关的C语言源码实现。 首先,我们来看“冒泡排序”。这是一种简单的排序算法,通过不断交换相邻的未正确排序的元素来逐步达到排序的目的。其基本思想是重复地...
这个压缩包文件“数据结构——排序查找等实验”显然包含了一系列与数据结构相关的编程实验,涵盖了排序算法和查找技术,这对于学习和理解这些概念至关重要。 首先,让我们逐一解析标签所提及的关键知识点: 1. **...
以上就是关于"排序查找"这一主题的主要内容。在C语言中实现这些算法,不仅要求对C语言的语法有深入理解,还需要掌握数据结构和算法的基本原理。通过实践这些算法,可以提升编程能力,同时也能更好地理解和优化程序的...
本资源"数据结构排序查找常用算法实现.zip"提供了一系列常用排序和查找算法的实现,帮助开发者深入理解并掌握这些核心概念。以下是这些算法的详细说明: 1. 冒泡排序(Bubble Sort): 冒泡排序是一种简单的交换...
在这个主题中,"链表树图排序查找"涵盖了三个核心概念:链表、树和图,以及排序和查找算法。让我们深入探讨这些知识点。 首先,链表是一种线性数据结构,不同于数组,它的元素不需要连续的内存空间。链表由一系列...
在IT领域,排序和查找是两个非常基础且重要的概念,它们是计算机科学中解决问题的核心工具。本文将深入探讨标题和描述中提及的六种基本运算:直接插入排序、冒泡排序、直接选择排序、堆排序、希尔排序以及二分查找,...
使用改进的快速排序查找多目标帕累托前沿 此函数返回给定多目标解空间的帕累托最优设计集的索引 此函数将索引返回到对应于帕累托最优设计集的给定矩阵。该函数的底层算法基于快速排序,并且对于具有有利的领先系数的...
自己整理的用C语言写的数据结构和排序查找算法。数据结构包括:栈,队列,两个队列实现一个栈,两个栈实现一个队列,二叉树的创建,添加,平衡二叉树天界旋转等,红黑树,创建,添加节点,删除节点,调整。算法包括...
### 计算机程序设计技巧之排序查找 #### 数据结构与算法基础 计算机科学的核心之一是数据结构与算法。良好的数据结构与高效的算法是解决复杂问题的关键。在《计算机程序设计技巧》第三卷《排序和查找》这本书中,...
c++实现链表创建排序查找删除所有单链表功能
在本资源中,"数据结构所有排序查找带图详细解释.7z" 提供了关于排序和查找算法的详细讲解,配以图表和注释,非常适合初学者学习。下面我们将深入探讨这些主题。 首先,我们来看排序。排序是指将一组无序的数据按照...
本文将深入探讨这两个主题,并结合"排序查找总结"这一资料,为读者提供一个全面的理解。 首先,我们来谈谈排序。排序是将一组无序的数据按照特定规则(如升序或降序)重新排列的过程。常见的排序算法有: 1. 冒泡...
在IT领域,排序、查找和搜索算法是计算机科学的基础,对于优化程序性能至关重要。这些算法在数据处理、数据库系统、机器学习等多个方面都有广泛应用。以下将详细解释标题和描述中提及的一些经典算法。 1. **排序...
在Linux环境下进行C语言编程时,排序和查找是常见的操作,尤其在处理大量数据时更为重要。本资源提供了相关的C源码以及一个`makefile`,帮助开发者更高效地管理和编译项目。以下是对这些知识点的详细解释: 1. **...
### 排序查找算法 #### 一、数组常用排序算法 在计算机科学中,排序算法是一种能将一串数据按照特定的顺序进行排列的算法。排序是计算机程序设计中的一项基本任务,在数据处理中有着广泛的应用。下面我们将详细...