算法总览
发布日期:2021-06-30 10:11:47 浏览次数:3 分类:技术文章

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

1.查找和排序

查找:不外乎顺序查找,二分查找,哈希表查找和二叉树查找。

顺序查找:一个个遍历查找。

二分查找:元素必须是有序的,用中间值判断要查找的值在哪一半,然后再找一半的中间值进行比较。改进是在中间值的取值,改为自适应的“”中间值“可以更快的找到要查找的值。

二叉树查找:创建二叉搜索树,即左节小于根,根小于右节点的二叉树。

哈希查找:使用键值对,以空间换时间的算法。

2.排序:排序比查找复杂一些,有比较插入排序,冒泡排序,归并排序,快速排序等不同算法等。

一般从额外空间消耗,平均时间复杂度和最差时间复杂度等方面来考虑,许多面试官喜欢要求快速写出快速排序的代码。

直接插入排序:是稳定的,时间复杂度n^2,具体思路是将前2个排序,然后前3个排序,前4个。。。的方法。

希尔插入排序:是一种不稳定的比较复杂的算法。

简单选择排序:找出最小的和第一位交换的方法。改进一下就是一次读一个最大和最小两个一起。

堆排序:先建立堆,然后堆顶与堆的最后一个元素交换。

冒泡排序:从前往后让相邻的两个数进行比较和调整,让较大的数往下沉,较小的数上来。改进是设置一个标志符,当不再交换就立即结束。或者上下一起进行排序,一次可以正确排序两个数的位置。

快速排序:选择一个元素将代排序的分为大于基准和小于基准两种,此时基准元素已经排好,然后分别对这两部分进行相同的操作,直到获得有序序列。快速排序被认为O(2n)中平均性能最好的,但若是关键码有序将变成冒泡排序,因此并不稳定。改进有大于一定范围使用快速排序,基本有有序后使用插入排序。

归并排序:将待排序的序列分为若干个序列,使每个子序列有序,然后把有序子序列合并成一个整序列。改进方法很多。

基数排序:待续。

转载地址:https://islet.blog.csdn.net/article/details/75174159 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:框架和设计模式的区别
下一篇:数据结构简介

发表评论

最新留言

不错!
[***.144.177.141]2024年04月25日 04时25分12秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章