博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
别说我不懂排序!几种常见排序算法(一)
阅读量:4700 次
发布时间:2019-06-09

本文共 1207 字,大约阅读时间需要 4 分钟。

part1:冒泡排序

冒泡排序的核心:一步一步交换相邻位置的数据!

冒泡排序示意图.png

代码示例

  • for 循环实现。
def bubble_sort1(arr):    # 交换的细节    def swap(i,j):        arr[i],arr[j]=arr[j],arr[i]    n =len(arr)    # 一步一步比较    for i in range(n):        for j in range(n-i):            # 定义交换规则,顺序            if j+1
arr[j+1]: # 交换相邻位置 swap(j,j+1)
  • while 循环实现。
def bubble_sort2(array):    def swap(i,j):        array[i],array[j]=array[j],array[i]    n=len(array)    swapped = True    # 相邻位置是否交换    while swapped:        # pass        swapped =False        for i in range(1,n):            if array[i-1] >array[i]:                swap(i-1,i)                swapped =True

part2:选择排序

核心思想:可以将一个原始列表划分成有序和无序两部分,每次从无序部分挑选出最值加入有序部分的一侧,直到该列表完全有序。

这里写图片描述

代码示例

def selection_sort(arr):    n = len(arr)    for i in range(n-1):        smallNdx =i        # find small value        for j in range(i+1,n):            if arr[j]

part3:插入排序

在学习插入排序的时候,你可以将它与选择排序作对比。选择排序是在无序部分中挑选出最值加入有序部分的一测;插入排序是在无序部分的一侧挑选出,插入到有序部分的合适位置。这样一比较,是不是清晰了很多?

这里写图片描述

代码示例

def insertion_sort(arr):    n =len(arr)    for i in range(1,n):        value = arr[i]        pos =i        # find insert position        while pos>0 and value

转载于:https://www.cnblogs.com/bbmkey/p/10702205.html

你可能感兴趣的文章
(转)Excel的 OleDb 连接串的格式(连接Excel 2003-2013)
查看>>
Java并发编程
查看>>
Git Stash用法
查看>>
sql server 2008学习8 sql server存储和索引结构
查看>>
Jquery radio选中
查看>>
memcached 细究(三)
查看>>
RSA System.Security.Cryptography.CryptographicException
查看>>
webservice整合spring cxf
查看>>
[解题报告] 100 - The 3n + 1 problem
查看>>
Entity Framework 学习高级篇1—改善EF代码的方法(上)
查看>>
Mybatis逆向工程配置文件详细介绍(转)
查看>>
String类的深入学习与理解
查看>>
不把DB放进容器的理由
查看>>
OnePage收集
查看>>
Java parseInt()方法
查看>>
yahoo的30条优化规则
查看>>
[CCF2015.09]题解
查看>>
[NYIST15]括号匹配(二)(区间dp)
查看>>
json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:No such file or directory
查看>>
洛谷 P1101 单词方阵
查看>>