冒泡排序

def bubble_sort(L):length = len(L)for i in range(0, length):for j in range(i + 1, length):if L[i] > L[j]:L[i], L[j] = L[j], L[i]return Larr = [1,53,2,1,9,0]
print(bubble_sort(arr))

快速排序

# 左小右大函数,获取一个中值,左放小右放大函数
def partition(arr, low, high):       #参数:列表,列表的第一个索引0,最后一个索引值N"""【左小右大函数】实现结果:提取列表中的最后一个元素为被比较值,≤该元素的值放在左边,>该元素的值放在右边实现过程:≤最后一个元素的所有元素依次放在左边索引0~i的位置,然后将最后一个元素放在索引i的位置,实现结果arr: 列表low: arr的第一个索引:0high: arr的最后一个索引:highreturn: i,即被比较值所在的索引位置"""i = low                                       # 最小元素索引pivot = arr[high]                             # 最后一个元素,我们把列表中的所有元素同它比较for j in range(low, high):                    #从第一个索引到倒数第二个索引if arr[j] <= pivot:                       #从第一个元素到倒数第二个元素依次判断是否≤最后一个元素arr[i], arr[j] = arr[j], arr[i]       #≤最后一个元素的所有元素依次放在左边索引0~i的位置i = i + 1arr[i], arr[high] = arr[high], arr[i]         #然后将最后一个元素放在索引i的位置,实现:该元素左边的都比它小,右边的都比它大的排序return (i)                                    #返回该元素的索引位置# 快速排序函数
def quickSort(arr, low, high):if low < high:                                #如果列表有1个以上的元素pi = partition(arr, low, high)            #获取左小右大函数中的 被比较数所在的索引quickSort(arr, low, pi - 1)            #反复循环,左排序quickSort(arr, pi + 1, high)           #反复循环,右排序arr = [10,22,78,3,12,9,1,11,33,2]
low = 0
high = len(arr)-1
quickSort(arr, low, high)
print(arr)

python3 冒泡排序 快速排序相关推荐

  1. Python3实现快速排序 通俗易懂

    Python3实现快速排序 快速排序 是一种交换排序,属于分治算法. 思路: 对于要排序的元素集合,指定集合的第一个元素为基准点,通过一系列的扫描和交换(见下面的代码),让基准点左边的元素比基准点小, ...

  2. js实现冒泡排序,快速排序,选择排序

    用js冒泡排序,快速排序,选择排序 1.冒泡排序 冒泡排序是比较经典的排序方法,是一种用时间换空间的排序方法.我总结了一下它的特点:(1)它的时间复杂度是:(2)每一趟相邻元素两两比较完毕就会产生最值 ...

  3. php二分法 冒泡 快速排序,PHP 常见算法【冒泡排序, 快速排序, 插入排序, 取舍排序, 二分法查找, .】...

    PHP 常见算法[冒泡排序, 快速排序, 插入排序, 选择排序, 二分法查找, ..] // 冒泡排序 function bubblesort($arr) { for($i=0,$j=count($a ...

  4. 数据结构(八):排序 | 插入排序 | 希尔排序 | 冒泡排序 | 快速排序 | 简单选择排序 | 堆排序 | 归并排序 | 基数排序 | 外部排序 | 败者树 | 置换-选择排序 | 最佳归并树

    文章目录 第八章 排序 一.排序的基本概念 (一)什么是排序 (二)排序的应用 (三)排序算法的评价指标 (四)排序算法的分类 (五)总结 二.插入排序 (一)算法思想 (二)算法实现 (三)算法效率 ...

  5. 数据结构与算法 第八天常见排序+冒泡排序+快速排序+文件IO+大数据排序+文件合并

    数据结构与算法 第八天常见排序+冒泡排序+快速排序+文件IO+大数据排序+文件合并 第一章 冒泡排序 [1]Bubble_Sort.c 第二章 快速排序 [1]quick_sort.c 第三章 大数据 ...

  6. 冒泡排序 快速排序 插入排序 选择排序

    最近面试好多公司考察算法,特意整理了一下: 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即,每当两相邻 ...

  7. 王道八大排序:直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 归并排序 基数排序

    文章目录 1.插入排序 1.1直接插入排序 1.2折半插入排序 1.3希尔排序 2.交换排序 2.1冒泡排序 2.2快速排序 3.选择排序 3.1简单选择排序 3.2堆排序 4.归并排序 5.基数排序 ...

  8. 冒泡排序+快速排序+选择排序(图解)

    冒泡排序 原理 假设有10个数,第一轮循环,第一个数和第二个数比较,如果第一个数大,第一个数和第二个数交换位置,否则不动:接着第二个数和第三个数比较,如果第二个数大,第二个数和第三个数交换位置,否则不 ...

  9. 直接插入排序 希尔排序 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 基数排序的算法分析和具体实现 ...

    排序分为内部排序和外部排序 内部排序是把待排数据元素全部调入内存中进行的排序. 外部排序是因数量太大,把数据元素分批导入内存,排好序后再分批导出到磁盘和磁带外存介质上的排序方法. 比较排序算法优劣的标 ...

最新文章

  1. 数据结构与算法(6-1)树的存储(树的双亲表示、树的孩子表示及树的双亲孩子表示)
  2. nvidia旧版驱动_N卡用户注意:老版驱动存在5个高危漏洞,赶紧更新
  3. 万字长文解读运营商搏击5G:一场比拼财力的三国杀
  4. 出去之后,好好做人!华为两年,苦乐参半!
  5. Exchange Server 2010安装测试
  6. 服务级后门自己做——创建服务
  7. python界面图片-python如何实现读取并显示图片(不需要图形界面)
  8. 【Flutter】Flutter 调试 ( 调试回退功能 | Debug 调试中查看变量的方式 | 控制台信息 )
  9. 宜昌远安谋定功能性-农业大健康·万祥军:绿色和谐新路
  10. 你有必要知道的一些JavaScript 面试题(中)
  11. MySQL高级 - 锁 - MyISAM表锁 - 查看锁争用情况
  12. Css3旋转、位移、缩放、倾斜动画
  13. 解决margin-top塌陷问题的六种方法
  14. 做人不能太心软,这三件事上,越狠心就越受益
  15. 嵌入式开发的职业前景分析
  16. 机器学习入门算法基础视频
  17. 【C#大作业】你画我猜——设计文档
  18. U盘检测及量产工具大合集
  19. 2 机器学习基本概念
  20. java tls_Java客户端中具有SNI的TLS

热门文章

  1. 计算机网络学习--协议族、协议栈
  2. 多组两两比较用什么检验方法_手把手教你多组独立样本的非参数检验及两两比较...
  3. excel查找在哪里_HR:对不起,我们公司不招25岁还用不好Excel的人
  4. NVP6124I北京冠宇铭通 芯片
  5. 什么是计算机网络的组成和功能是什么,计算机网络的组成要素及功能是什么
  6. 来自北京大学NOIP金牌选手yxc的常用代码模板3——搜索与图论
  7. 整数二分详解---yxc
  8. 2021-2027全球与中国GPU服务器市场现状及未来发展趋势
  9. 音/视频码率分配策略
  10. 【Distill 系列:三】CVPR2019 Relational Knowledge Distillation