黑洞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. 01

    2019-06

    高质量的爬虫代理IP有哪些特征?

    所谓高质量代理IP,必须要具体3个特点:A.高匿名,B.私密性,C.纯净资源;

  2. 01

    2019-10

    爬虫利用私密代理ip提高工作效率

    我们在网上冲浪的时候,有时候会用到爬虫代理。爬虫代理在目前是很火热的。之所以要用到爬虫代理,是因为我们有时候需要更换ip。在这个时候,我们就需要用到爬虫代理。但是爬虫代理需

  3. 16

    2019-09

    免费ip代理服务器的重点

    作为一个一直专注http发展的代理团队,在发现http代理服务器ip服务中的用户不能使用的问题之后,就对http代理服务器ip服务进行深入研究,并且在长期努力之后已经解决了http代理服务器ip服务

  4. 08

    2019-08

    http代理服务器的匿名程度如何判别?

    那是不是不用透明http代理就可以隐藏自己的身份呢?是的,只不过,普通匿名http代理虽然不知道您的真实身份,但是人家知道你是个卧底,哈哈。只有高级匿名http代理才能做到如假包换!要想

  5. 27

    2019-03

    抖音运营也要用代理IP软件吗?

    做运营的人,几乎都不会放过抖音这个平台。每天高达1亿的日活量,零成本的运营,可以说是很多运营人比较喜欢的一个平台了。

  6. 26

    2019-03

    大数据时代,代理IP助力爬虫工作

    大数据时代,爬虫已经成为很多互联网公司很关键的一个职位或者说是职能部门,现在网上的数据越来越多,爬虫这种自动采集信息的工具,能够花费更少的时间和人力采集数据信息并且加以分