基础排序

作者: 陈昱熹 | 来源:发表于2018-01-15 19:26 被阅读0次

一、选择排序

def selectionSort(lst):
    '''选择排序'''
    i = 0
    while i < len(lst) - 1:
        minIndex = i
        j = i + 1
        while j < len(lst):
            if lst[j] < lst[minIndex]:
                minIndex = j
            j += 1
        if minIndex != i:
            lst[i], lst[minIndex] = lst[minIndex], lst[i]
        i += 1
    return lst

二、冒泡排序

def bubbleSort(lst):
    '''冒泡排序'''
    n = len(lst)
    while n > 1:
        i = 1
        swapped = False
        while i < n:
            if lst[i] < lst[i-1]:
                lst[i], lst[i-1] = lst[i-1], lst[i]
                swaped = True
            i += 1
        if not swapped:
            return lst
        n -= 1
    return lst

三、插入排序

def insertionSort(lst):
    i = 1
    while i < len(lst):
        itemToIndex = lst[i]
        j = i - 1
        while j >= 0:
            if itemToIndex < lst[j]:
                lst[j+1] = lst[j]
                j -= 1
            else:
                break
        lst[j+1] = itemToIndex
        i += 1
    return lst

相关文章

  • 开发者应该掌握的几种排序算法

    该篇文章主要介绍了算法基础以及几种常见的排序算法:选择排序、插入排序、冒泡排序、快速排序、堆排序。 一、算法基础 ...

  • 算法-排序算法总结

    排序类型总结 1 排序算法基础实现 2 排序算法应用 2.1 基础排序 2.2 计数排序应用 2.3 快排应用 2...

  • Java常见排序基础 - 中

    在Java常见排序基础 - 上中主要介绍了冒泡排序、选择排序、插入排序三种基础排序,本篇文章主要介绍的是 快速排序...

  • c++day09

    插入排序基础版(后插1) 插入排序基础版(后插2) 改进 插入排序基础版(前插) 字符数组 ASCII 的 A =...

  • 数据结构与算法-排序/二分查找

    算法中基础中的基础,排序/二分查找 排序 1.快排QuickSort 归并排序 堆排序 1. 二分查找

  • 排序算法总结

    基础排序算法 基础排序算法相关接口和实现类 接口: 实现类(后续排序的父类): 1.选择排序 两层循环:内层循环进...

  • C#入门(数组排序,二维数组,锯齿数组,输出蛇形矩阵)

    数组排序 冒泡排序 冒泡排序是数组的基础排序方法 int[] intArray = { 1, 5, 5, 79, ...

  • 排序算法

    概述 一般排序算法(以元素比较为基础) => 快速排序、归并排序、插入排序、冒泡排序、堆排序 特殊排序算法 => ...

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • php之排序-------冒泡排序的优化

    本文需要在理解冒泡排序的基础之上 排序是算法入门的基础操作,冒泡排序很经典。下面这个改进后的冒泡排序,使循环的次数...

网友评论

    本文标题:基础排序

    本文链接:https://www.haomeiwen.com/subject/vdidoxtx.html