IP代理软件,http代理,API提取-黑洞HTTP

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

代理IP中爬虫Python 常见排序查找算法-二分法,归并,冒泡,

发布时间:2019年03月29日 来源:http://http.hunbovps.com/News/getList/catid/8/id/225.html

# 二分法查找 有序序列中的值

def binary_search(sorted_seq, val):

    """复杂度 O(log(N))"""

    if not len(sorted_seq):

        return 'Not Find'

    low = 0

    high = len(sorted_seq) - 1


    while low <= high:

        mid = (high + low) // 2

        if sorted_seq[mid] == val:

            return mid

        elif sorted_seq[mid] > val:  # 说明 在 low - mid

            high = mid - 1

        else:  # 说明 在 mid - high

            low = mid + 1

    #  如果还存在特殊情况? val 不在其中的时候 比如 【1,3,4】 val=2

    if sorted_seq[low] == val:

        return low

    else:

        return 'Not Find'

代理IP中爬虫Python 常见排序查找算法-二分法,归并,冒泡,

# 冒泡排序

def bubble_sort(seq):

    """

    拿出一个数 和其余的数目依次比较 如果 发现大于其中的一个数 就立刻互换位置 复杂度 O(n^2)

    :param seq:

    :return:

    """

    n = len(seq)

    for i in range(n):

        for j in range(n-1):

            if seq[i] > seq[j]:

                seq[i], seq[j] = seq[j], seq[i]



# 插入排序

def insertion_sort(seq):

    """一次拿出一个数 到 已经排序的数组里面 按顺序插入"""

    n = len(seq)

    for i in range(1, n):

        cur_val = seq[i]

        cur_pos = i

        #  向左遍历查找 发现小于的就互换位置

        while cur_pos and cur_val < seq[cur_pos - 1]:

            seq[cur_pos] = seq[cur_pos - 1]

            cur_pos -= 1  # 继续向左偏移

        seq[cur_pos] = cur_val



# 归并排序

def merge_sort(seq):

    """ 分解元素 分别排序 最后合在一起  复杂度 O(nlogn)"""

    n = len(seq)

    if n < 2:

        return seq

    l_arr = seq[:n//2]

    r_arr = seq[n//2:]

    new_l_arr = merge_sort(l_arr)

    new_r_arr = merge_sort(r_arr)

    new_array = []

    while 1:

        if not len(new_l_arr):

            new_array += new_r_arr

            return new_array

        if not len(new_r_arr):

            new_array += new_l_arr

            return new_array

        if new_r_arr[0] < new_l_arr[0]:

            new_array.append(new_r_arr[0])

            new_r_arr.pop(0)

        else:

            new_array.append(new_l_arr[0])

            new_l_arr.pop(0)



if __name__ == '__main__':

    seq = [1,7,4,2,5,3,9,6,8]

    src = merge_sort(seq)

    print(src)

 


相关文章内容简介

1 代理IP中爬虫Python 常见排序查找算法-二分法,归并,冒泡,

# 二分法查找 有序序列中的值def binary_search(sorted_seq, val):    """复杂度 O(log(N))"""    if not len(sorted_seq):        return 'Not Find'    low = 0    high = len(sorted_seq) - 1    while low <= high:        mid = (high + low) // 2        if sorted_seq[mid] == [阅读全文]

热门标签

最新标签

推荐阅读

  1. 02

    2019-09

    代理IP的理论基础

    在爬取网站时,我们经常会设置代理IP来避免爬虫程序被封,我们获取代理IP地址方式通常提取国内的知名IP代理商(比如:开心代理)提供透明代理,匿名代理,高匿代理。那么这几种代理的区

  2. 02

    2019-07

    为何使用稳定http代理ip?

    市面上的http代理ip资源众多,但是实际操作过程中不难发现,这些琳琅满目的IP平台,很多是公用一套或者几套IP资源,IP重复率居高不下,没有专人维护,真正能用的没几个。使用这些平台IP资

  3. 27

    2019-06

    注册多个账号就用代理ip

    网民在上网的时候,很多时候需要使用到IP地址代理软件,比如在注册多个账号的时候,就需要不断地更换IP。虽然手动更换IP是可以的,但是手动的方法太过繁琐。这个时候,用IP代理软件是非

  4. 18

    2019-03

    IP代理:python学习-- Django进阶之路 model的 objects对象 转 json

    # objects_to_json: 将 model对象 转化成 json # json_to_objects: 将 将反序列化的json 转为 model 对象 def json_field(field_data):

  5. 19

    2019-11

    Java动态代理ip机制详解

    在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。首先我们先来看看java的API帮助文档

  6. 01

    2019-11

    高效优质代理IP是大数据爬虫的必备工具

    昨日三大运营商公布5G套餐,随着大数据时代和智能化时代到来,爬虫作为重要的数据来源,一直备受瞩目。越来越多的网络从业者选择成为一名爬虫工程师,为大数据建设而奋斗。要成为一名