栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

(知识盘点)如何用python实现各种数据结构

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(知识盘点)如何用python实现各种数据结构

这里主要分享的是用python实现各种数据结构,快速排序、选择排序、插入排序、归并排序、堆排序heapq模块等相关资料,想要了解更多关于python知识以及领取免费资料的请点击。

目录

快速排序

选择排序

插入排序

归并排序

堆排序heapq模块

队列

二分查找


快速排序

1

2

3

4

5

6

7

8

def quick_sort(_list):

        if len(_list) < 2:

            return _list

        pivot_index = 0

        pivot = _list(pivot_index)

        left_list = [i for i in _list[:pivot_index] if i < pivot]

        right_list = [i for i in _list[pivot_index:] if i > pivot]

    return quick_sort(left) + [pivot] + quick_sort(right)

选择排序

1

2

3

4

5

6

7

8

9

def select_sort(seq):

    n = len(seq)

    for i in range(n-1)

    min_idx = i

        for j in range(i+1,n):

            if seq[j] < seq[min_inx]:

                min_idx = j

        if min_idx != i:

            seq[i], seq[min_idx] = seq[min_idx],seq[i]

插入排序

1

2

3

4

5

6

7

8

9

10

def insertion_sort(_list):

    n = len(_list)

    for i in range(1,n):

        value = _list[i]

        pos = i

        while pos > 0 and value < _list[pos - 1]

            _list[pos] = _list[pos - 1]

            pos -= 1

        _list[pos] = value

        print(sql)

归并排序

   

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

def merge_sorted_list(_list1,_list2):   #合并有序列表

       len_a, len_b = len(_list1),len(_list2)

       a = b = 0

       sort = []

       while len_a > a and len_b > b:

           if _list1[a] > _list2[b]:

               sort.append(_list2[b])

               b += 1

           else:

               sort.append(_list1[a])

               a += 1

       if len_a > a:

           sort.append(_list1[a:])

       if len_b > b:

           sort.append(_list2[b:])

       return sort

   def merge_sort(_list):

       if len(list1)<2:

           return list1

       else:

           mid = int(len(list1)/2)

           left = mergesort(list1[:mid])

           right = mergesort(list1[mid:])

           return merge_sorted_list(left,right)

堆排序heapq模块

1

2

3

from heapq import nsmallest

def heap_sort(_list):

    return nsmallest(len(_list),_list)

1

2

3

4

5

6

7

8

9

10

11

12

from collections import deque

class Stack:

    def __init__(self):

        self.s = deque()

    def peek(self):

        p = self.pop()

        self.push(p)

        return p

    def push(self, el):

        self.s.append(el)

    def pop(self):

        return self.pop()

队列

1

2

3

4

5

6

7

8

from collections import deque

class Queue:

    def __init__(self):

        self.s = deque()

    def push(self, el):

        self.s.append(el)

    def pop(self):

        return self.popleft()

二分查找

1

2

3

4

5

6

7

8

9

10

def binary_search(_list,num):

    mid = len(_list)//2

    if len(_list) < 1:

        return Flase

    if num > _list[mid]:

        BinarySearch(_list[mid:],num)

    elif num < _list[mid]:

        BinarySearch(_list[:mid],num)

    else:

        return _list.index(num)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/743832.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号