问题

查找某个值在list中的位置

解决思路

能够用折半查询的方法解决此问题。

解决(Python)

#! /usr/bin/env python
#coding:utf-8 #折半查找某个元素在list中的位置 def half_search(lst,value,left,right):
length = len(lst)
while left<right:
middle = (right-left)/2
if lst[middle]>value:
right = middle-1
elif lst[middle]<value:
left = middle+1
else:
return middle if __name__=="__main__":
lst=sorted([2,4,5,9])    #折半算法中list要进行排序
length = len(lst)
left = 0
right = length-1
value =4
result = half_search(lst,value,left,right)
if result:
print result
else:
print "There is no the value that you want to search."

再思考

对于上面的折半方法,在python中,能够通过一个函数实现

lst = sorted([2,4,5,9])    #这里进行排序。主要是为了得到与上面方法一样的结果。其实,list.index()能够针对不论什么list操作,不一定非要排序
result = lst.index(4)

此外。假设遇到list中有多个同样的元素。应该怎样将这些元素的位置都查询出来呢?以下的方法是用python实现。

def find_value_location(lst,value):
result = [i for i in range(len(lst)) if value==lst[i]]
return result

很多其它用python实现的算法,请看:https://github.com/qiwsir/algorithm

qiwsir#gmail.com

查找元素在list中的位置以及折半查询的更多相关文章

  1. 我的前端工具集(八)获得html元素在页面中的位置

    我的前端工具集(八)获得html元素在页面中的位置   liuyuhang原创,未经允许禁止转载 目录 我的前端工具集 有时候需要用点击等操作,来获取某元素在页面中的位置,然后在该位置添加某些操作 如 ...

  2. 关于js获取元素在屏幕中的位置的方法

    针对我们获取元素在页面中的位置的问题,我们还是用老师一峰老师的方法来解决吧 下面上HTML代码 <div class="left_footer"> <p data ...

  3. Search Insert Position 查找给定元素在数组中的位置,若没有则返回应该在的位置

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  4. C语言-查找一个元素在数组中的位置

    #include<stdio.h> #include <stdlib.h> #include <time.h> int search(int key, int a[ ...

  5. jquery中找到元素在数组中位置,添加或者删除元素的新方法

    一:查找元素在数组中的位置 jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值.如果数组中不存在该值,则返回 -1. jQuery.inArray( value, array ...

  6. js能力测评——查找元素的位置

    查找元素的位置 题目描述: 找出元素 item 在给定数组 arr 中的位置 输出描述: 如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1 示例1 输入 [ 1, 2, 3, 4 ] ...

  7. jquery获取元素在文档中的位置信息以及滚动条位置(转)

    jquery获取元素在文档中的位置信息以及滚动条位置 http://blog.csdn.net/qq_34095777/article/details/78750886     原文链接 原创 201 ...

  8. selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码

    目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...

  9. JS中关于位置和尺寸的api

    HTMLElement.offsetParent 由于offsetTop 和 offsetLeft 都是相对于 offsetParent 内边距边界的,故offsetParent的意义十分重大.off ...

随机推荐

  1. [CSP-S模拟测试]:五子棋(模拟)

    题目传送门(内部题122) 输入格式 输入文件第一行为一个正整数$n$,表示双方总共下了多少步棋. 接下来$n$行,输入文件每行两个正整数.第$i$行的两个数$x,y$表示第$i$步的棋子下在了第$x ...

  2. 互联网_http协议

    一.定义 http协议叫做超文本传输协议,是从web服务器传输超文本到本地浏览器的协议. 二.特征 1.无连接:即每次连接仅处理一个请求,服务器处理完客户的请求,并收到客户端的响应后,即断开连接.采用 ...

  3. 使用ElementUI创建项目

    从 0 开始搭建 element 项目 第一步,安装 Nodejs/NPM https://nodejs.org/zh-cn/download/ 下载安装即可! 第二步,安装 vue-cli 打开 c ...

  4. C++入门经典-例2.13-左移运算

    1:代码如下: // 2.13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...

  5. 顺序表栈C语言实现

    /* * SeqStack.h * * Created on: 2019年8月1日 * Author: Administrator */ #ifndef SEQSTACK_H_ #define SEQ ...

  6. charts_03

    table 数值获取: 1.http://www.w3school.com.cn/jsref/dom_obj_all.asp 2.http://blog.csdn.net/xs_zgsc/articl ...

  7. linux 加多播协议(IGMP)

    可能你所用的内核编译时没有选中multicast的选项.   追问 感谢您的回复,但是我还是不太明白你说的multicast选项是什么意思.能更详细的说一下吗,谢谢.或者能直接用QQ或者MSN帮忙看看 ...

  8. java 设计模式 单例模式之饿汉模式/懒汉模式 singleton pattern

    https://v.qq.com/x/page/e0364ung5zp.html 讲的不错, 关于 饿汉式单例模式 code Student 类: package com.test;//单例模式之   ...

  9. golang网络通信超时设置

    网络通信中,为了防止长时间无响应的情况,经常会用到网络连接超时.读写超时的设置. 本文结合例子简介golang的连接超时和读写超时设置. 1.超时设置 1.1 连接超时 func DialTimeou ...

  10. Windows10安装秘钥大全

    Windows10官方镜像下载地址: 点击下载 老毛桃U盘启动制作:点击下载 秘钥大全 家庭版: Core 家庭版:YTMG3-N6DKC-DKB77-7M9GH-8HVX7 单语言家庭版:BT79Q ...