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. 20

    2019-06

    爬虫经常被封有哪些原因有哪些对策

    大数据时代下,采集数据常用的方法是写一个爬虫程序向网络服务器请求数据,然后对数据进行解析,然后提取所需要的信息,然而,事情并不能一帆风顺,请求数据时经常受到访问限制,或者

  2. 24

    2019-07

    代理ip很慢怎么办?

    检测QQ登录状态机制分析第一种是利用纯真ip数据库,这个可以在网上找到很多,但缺点是更新有点慢。第二种是利用门户网站的接口,有腾讯、新浪、网易、搜狐和Google提供IP地址查询API,但是

  3. 21

    2019-05

    IP代理满足IP切换最大需求

    互联网时代快速发展的今天,各类与互联网息息相关的事物如雨后春笋般涌现而出,其中,互联网上大量的同质网站让消费者眼花缭乱,在同比之下,消费者更愿意选择访问量大的网站。为此,

  4. 21

    2019-11

    如何把“请求对象添加随机代理IP”作为反反爬虫策略?

    爬虫的目的就是为了模拟点击浏览器操作的行为,在反反爬策略中,最基础的就是更换User-Agent。

  5. 22

    2019-10

    HTTP代理IP用于网络营销效果怎么样?

    HTTP代理IP用于网络营销效果怎么样?我们平时在访问网站,查看或进行业务的时候,基本都会被提示要先注册登录,但一个ip地址基本只能注册一个帐号。如果是每天都有大量注册业务需求的网

  6. 24

    2019-07

    购买高匿代理服务器和识别代理ip

    在国内的http代理市场中,稍加留神就会发现一个问题,那就是收费普遍比较高,因此大多数用户在电脑代理IP的购买上都很苦恼,那么有没有什么解决这个问题的方法呢其实质优价廉的代理IP还