Sorting Algorithm(2)

       在轮子越来越多,越来方便调用的今天,基础算法的实现也被淡忘,虽然工作中不太需要自己造基础轮子,但其背后的思想对提高编程水平还是很有指导意义,特此记录。

  •   创建随机数组
import numpy as np
array = np.random.randint(0, 100, 1000)

  •  冒泡排序
def bubble_sort(input_array):
    array = input_array.copy()
    for i, _ in enumerate(array):
        for j, _ in enumerate(array[:-(i+1)]):
            if array[j+1] < array[j]:
                array[j], array[j+1] = array[j+1], array[j]
    return array
%%time  # 在jupyter下执行
bubble_sort(array)

  • 快速排序
def quick_sort(input_array):
    array = input_array.copy()
    def sort(left, right):
        if left > right:
            return
        temp = array[left]
        i = left
        j = right
        while i != j:
            while array[j] >= temp and i < j:
                j -= 1
            while array[i] <= temp and i < j:
                i += 1
            if i < j:
                array[i], array[j] = array[j], array[i]
        array[left], array[i] = array[i], temp
        sort(left, i-1)
        sort(i+1, right)
        return
    sort(0, len(array)-1)
    return array
%%time  # 在jupyter下执行
quick_sort(array)

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值