博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
十种经典排序算法
阅读量:4710 次
发布时间:2019-06-10

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

1、冒泡排序

算法步骤:

(1)

def BubbleSort(array):    for i in range(1, len(array)):  # 共需要len(array)-1趟        flag = True  # 设置一个标志flag,如果这一趟没有发生元素的交换,说明排序已经完成,直接退出循环        for j in range(len(array)-i):  # 每趟需要len(array)-i趟排序            if array[j] > array[j+1]:                array[j],array[j+1] = array[j+1], array[j]                flag = False        if flag: break    return array

2.选择排序

算法步骤:

(1)首先在未排序的数组中找到最小数,存在已排序的序列的起始位置

(2)再从未排序的序列中找到最小数,将它放在已排序序列的末尾

(3)重复第二步操作,直到所有元素排序完成。

# 数组前面存放已排序的序列,后面存放未排序的 def SelectionSort(array):    for i in range(len(array)-1):  # 经过len(array) - 1 次  i 代表已排序的元素        min = i        for j in range(i+1, len(array)):  # 将min指向的元素与未排序的元素进行比较         j 代表未排序元素索引(i+1,len(array))            if array[min] > array[j]:                min = j        if not min == i:            array[i], array[min] = array[min],array[i]    return array

3.插入排序

算法步骤:

(1)将数组的第一个元素作为有序序列,其他元素作为无序序列

(2)从第二个元素开始循环,将元素插入有序序列(从末尾开始比较)如果元素大于待插入元素,就将该元素后移一位。

def InsertSort(array):    for i in range(1, len(array)):        temp = array[i]  # 将待插入元素存入temp         j = i          while j > 0 and array[j-1] > temp:  # 从末尾开始比较            array[j] = array[j-1]            j -= 1        if not j == i:  # 如果存在比待插入元素大的            array[j] = temp    return array

 

转载于:https://www.cnblogs.com/nxrs/p/10999634.html

你可能感兴趣的文章
Deep RL Bootcamp Lecture 3: Deep Q-Networks
查看>>
Vue引入jQuery
查看>>
Intellij IDEA 像eclipse那样给maven添加依赖
查看>>
网页截图像素与实际像素不一致问题
查看>>
QT容器map的插入,修改,遍历
查看>>
递归算法--写实例----阶乘问题---整数划分问题
查看>>
hibernate分表保存日志
查看>>
Java实现文件上传
查看>>
【IBM-WALA】Step by Step : use WALA to generate System Dependency Graph PDF and Dot File (Mac)
查看>>
[AHOI2005] SHUFFLE 洗牌
查看>>
拆迁管理系统--分割字符串的函数
查看>>
ZOJ1360 POJ1328 Radar Installation, 贪心
查看>>
poj1191 棋盘分割。 dp
查看>>
Python函数
查看>>
C++实现网格水印之调试笔记(五)—— 提取出错
查看>>
SpringMVC导出Excel
查看>>
【剑指offer】Q17:合并两个排序的链表
查看>>
JAVA学习(五):Java面向对象编程基础
查看>>
日常问题总结
查看>>
oracle 存储过程和函数例子 --2
查看>>