关于“php折半查找算法案例”的问题,小编就整理了【3】个相关介绍“php折半查找算法案例”的解答:
折半查找法例题分析?package com.aozhi.test;
public class BinarySearch {
/*
* 循环实现二分查找算法arr[] 已排好序的数组x
* return 返回索引下标
*/
public static int binarySearch(int[] arr, int x) {
int low = 0;
int high = arr.length - 1;
while (low <= high) {//判断非空
int middle = (low + high) / 2;//折半从中间开始
if (x == arr[middle]) {//是中间的直接返回
return middle;
} else if (x < arr[middle]) {//因为他是有序的数组,可以根据中间值作比较
high = middle - 1;
} else {
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = { 6, 12, 33, 87, 90, 97, 108, 561 };
System.out.println("循环查找:" + (binarySearch(arr, 6)));
折半查找算法及代码?#include<iostream>
#define MAX_SIZE 102
using namespace std;
template <class T>
int BinarySearch(T a[],const T&x,int n,int left,int right)
{
if(left>=right)
return -1;
else
{
if(a[(left+right)/2]==x)
return (left+right)/2;
else if(x>=(left+right)/2)
return BinarySearch(a,x,n,(left+right)/2+1,right);
else if(x<(left+right)/2)
return BinarySearch(a,x,n,left,(left+right)/2-1);
}
}
int main()
{
int a[MAX_SIZE];
int i,len,x,p;
cin>>len;
for(i=0;i<len;i++)
cin>>a[i];
cin>>x;
p=BinarySearch(a,x,len,0,len-1);
顺序查找和折半查找的算法心得?1.顺序查找:<适合对象——无序或有序队列>
思想:逐个比较,直到找到或者查找失败。
时间复杂度:T(n) = O(n)。
2.折半查找:<适合对象——只是适用于有序表,且限于顺序存储结构(线性链表无法进行折半查找)>
思想:又称二分查找,对于已经按照一定顺序排列好的列表,每次都用关键字和中间的元素...
时间复杂度:T(n) =O(logn)。
到此,以上就是小编对于“php折半查找算法案例”的问题就介绍到这了,希望介绍关于“php折半查找算法案例”的【3】点解答对大家有用。