快速排序查找匹配元素最前面是否有对应得元素

$arr = [1,2,3,3,4,5,6];
	function binSearch($arr,$num,$start,$end){
		if($start > $end){
			return -1;
		}

		$mid = floor(($start+$end)/2);
		$midValue = $arr[$mid];
		if($num < $midValue){
			$mid = $mid-1;
			return binSearch($arr,$num,$start,$mid);
		}elseif($num > $midValue){
			$mid = $mid+1;
			return binSearch($arr,$num,$mid,$end);
		}else{
			if($mid == 0 || $num != $arr[$mid-1]){
				return $mid;
			}else{
				return binSearch($arr,$num,$start,$mid-1);
			}
		}
	}
	$start=0;
	$end = count($arr)-1;
	$index = binSearch($arr,3,$start,$end);
	echo $index;

  

原文地址:https://www.cnblogs.com/zh718594493/p/12089231.html

时间: 2025-01-16 03:22:46

快速排序查找匹配元素最前面是否有对应得元素的相关文章

[ jquery选择器 :animated ] 此选择器匹配所有正在执行动画效果的元素

此选择器匹配所有正在执行动画效果的元素 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword2,keyw

写一个查找算法找出数组中相同的元素

1 import java.util.ArrayList; 2 3 public class Test { 4 5 // 原始数据data.假设data数组中的数据元素已经按照某种顺序排好. 6 // 但是,该数组中的数据元素重复出现. 7 // 我们的目的是查找.解析data数组中重复出现的某元素. 8 // 比如,在这个data数组中,元素'C'在数组位置2,3重复出现两次. 9 // 注意!有些元素没有重复出现,比如元素'B'. 10 private String[] data = { "

[ jquery 选择器 :gt(index) ] 此方法选取匹配大于指定索引值的所有元素

此方法选取匹配大于指定索引值的所有元素:角标值从0开始计数 <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword

[ jquery 选择器 :lt(index) ] 此方法选取匹配小于指定索引值的所有元素

此方法选取匹配小于指定索引值的所有元素:从 0 开始计数 <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword2

编写程序,查找并删除forward_list&lt;int&gt;中的奇数元素

#include<iostream> #include<forward_list> using namespace std; int main() { forward_list<int> flst={0,1,2,3,4,5,6,7,8,9}; auto prev=flst.before_begin(); auto curr=flst.begin(); while(curr!=flst.end()) { if(*curr%2)//当找到奇数元素时,我们将prev传递给er

jquery 通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)

jquery 通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素) $("ul").append("<li class='name'>名称</li>"); [错误] 然后通过下面的方式, 这样是不能获取的 : $(".name").click(function (){    alert("获取到append后的节点"); }) [正确] 正确的方法是:

[转载]C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素

//防止页面多次刷新页面执行 if (num == 1) { string GetUserName = System.Configuration.ConfigurationSettings.AppSettings["Y2000UserName"].ToString(); string GetUserPassword = System.Configuration.ConfigurationSettings.AppSettings["Y2000UserPassword"

使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <meta htt

查找出现次数大于n/k的重复元素

本文是对一篇英文论文的总结:Finding Repeated Elements.想看原文,请Google之. 这个问题的简单形式是“查找出现次数大于n/2的重复元素”.我们先从简单问题开始,然后再做扩展. 1.查找出现次数大于n/2的重复元素 <编程之美>中有同样的一道题<寻找发帖水王>,具体思路是每次删除两个不同的元素,最后剩下的就是要求的元素.这个结论的证明如下: 已知:n,m是正整数,n表示数组的长度,m是出现次数大于n/2的元素的个数,即m>n/2. 需要求证的结论包