| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 数组常用的几种排序方式 -> 正文阅读 |
|
[数据结构与算法]数组常用的几种排序方式 |
冒泡排序冒泡拍排序:俩俩捉对比较,大或小就换位置,一直比下去,最大或者最小的放最后
注意:如果要从大到小排列的话,就把compare方法中的a>b的判断改为a<b 选择排序
举例: 第一趟排序 :1,4,7,2,9,5,6 第二趟排序: 1,2,7,4,9,5,6 第三趟排序: 1,2,4,7,9,5,6 第四趟排序: 1,2,4,5,9,7,6 首先在未排序序列中找到最大(小)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 不稳定的排序算法不稳定的排序算法主要有以下四种:1、选择排序;2、快速排序;3、希尔排序(shell);4、堆排序 稳定的排序算法稳定的排序算法有以下4种:1、冒泡排序;2、插入排序;3、归并排序 ;4、基数排序。 排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。 注意:
快速排序js的 js中??法sort()为数组排序。sort()?法有?个可选参数,是?来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进?排序 注意:使用sort()需要自己写一个确认顺序的函数,作为参数使用 数组对象进?排序 递归排序(快速排序)1.从数列中取出一个数作为参考,分区过程。 因为每次递归都会把 左和右合并后的数组 的第一个拿来做leader,每次都会出现一个新的左和右数组,并且数组的长度会比之前少一个(因为第一个被拿去做为leader) 直到递归到最后数组中只剩一个值,这个值被拿去做leader,左右数组中值一个不剩,导致左右合并后的数组为空,跳出递归 这样其实也是把所有的值都和leader对比了一遍(其实和leader对比后,分为两块后,,再合成一个新数组,返回,循环往复操作) 递归的操作其实就是分为两块后,再次一一对比了一遍 但这种写法 性能较差 二分法插入排序算法 算法思想简单描述: 复杂度分析 插入排序两个循环,内部循环,一个一个插入,只要上一个比大或者小就立即插入 插入排序,一旦你遇到比自己大或小的了,你就知道,后面都是比自己大或小的,就没必要再继续往前走了,现在坐下,当前元素就进入了有序序列 插入的每一次插,都不一定要轮一遍有序序列
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:43:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |