| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 排序算法思路及时间复杂度 -> 正文阅读 |
|
[数据结构与算法]排序算法思路及时间复杂度 |
1.原地排序算法的含义?
2.选择排序 优化: 不稳定的排序算法(每次比较都是跳跃性的,比较两个相同数据的相同位置明显发生变化) 3.直接插入排序 时间复杂度:O(n^2) 空间复杂度O(1) (1).普通插入排序的时间复杂度最坏情况下为O(N^2),此时待排序列为逆序,或者说接近逆序。
思想:1.先选定一个gap为第一增量,然后将所有距离为gap的元素分在同一组,并对每一组的元素进行直接插入排序。 注:一般情况下,取序列的一半作为增量,然后依次减半,直到增量为1(也可自己设置) 时间复杂度:O(nlogn)?~ O(n^2) 和选的增量有关 ?空间复杂度O(1) 不稳定的 5.二分查找
如何按照基准值将待排序列分为两子序列 Hoare版本的单趟排序的基本步骤如下: 经过一次单趟排序,最终使得key左边的数据全部都小于key,key右边的数据全部都大于key。 然后我们在将key的左序列和右序列再次进行这种单趟排序,如此反复操作下去, 前后指针法的单趟排序的基本步骤如下: 经过一次单趟排序,最终也能使得key左边的数据全部都小于key,key右边的数据全部都大于key。 然后也还是将key的左序列和右序列再次进行这种单趟排序,如此反复操作下去,直到左右序列只有一个数据,或是左右序列不存在时,便停止操作。
时间复杂度:O(nlogn) 快速排序的两个优化
时间复杂度:O(nlogn) 空间复杂度O(n) ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/30 0:59:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |