美文网首页
数据结构与算法

数据结构与算法

作者: Allen的光影天地 | 来源:发表于2018-06-27 20:18 被阅读2次

今天任务:快排,冒泡,堆排,归并排序,二分查找,二叉树的遍历,二叉树增删查改
晚上回去写总结,算法才是灵魂,数据结构是载体,有功夫的时候把每种算法用不同的数据结构实现一遍,感受下数据结构带给算法的便利。
永远记住:研究算法的设计和性能的主要原因之一:通过提高速度解决其他方法无法解决的问题


冒泡排序

冒泡算法是相邻两元素相互比较,如果顺序相反就交换。这样每次讲最大的或最小的放置好。
轻易可知:比较次数,这是确定的比较次数:(n-1)!
移动次数是一个范围,最多可能移动次数和比较次数一致

简单选择排序

每次循环从全队中找到最小的,把他放在排头。所以确定的要经过n*(n-1)/2次比较,n次交换
从这里看我觉得选择排序要优于冒泡排序,毕竟只需要确定的n次交换

插入算法

保证每次循环之后,左侧都是按照顺序拍好的。
和冒泡算法作比较后,针对部分有序的集合来说(这里说的有序 是指与我们想得到的顺序一致) 插入排序效率优于冒泡排序
最多比较次数:(n-1)!
最多交换次数同样是 (n-1)!

  • 注: 截止这里以上的三种方法,都是时间复杂度为n^2级别的

希尔排序

在实现希尔的过程我踩了不少坑。
通过以n为间隔,快速将偏远的小数移动到前列,形成n有序。最终保证n=1,做到全排序。最大化利用插入排序在小范围的优势。


归并排序

两种方法,经典自上而下的方法:使用递归
一种自下而上的方法:使用两个循环嵌套。适合链表的数据结构
还有很多优化手段,比如在面对小数组的时候,使用插入算法进行优化。
在实现归并的过程中,走了很多弯路。我觉得最主要的编程水平不够的原因是,思路不清晰,把要做的一步步想好了,就很顺利。所以核心是理解算法的想法,怎么实现。

快速排序

堆排序

相关文章

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • 最新完整数据结构与算法

    最新完整数据结构与算法 P11_课程介绍 P22_数据结构与算法概述_数据结构 P33_数据结构与算法概述_算法 ...

  • 数据结构与算法

    数据结构与算法之美 数据结构与算法之美1--如何学数据结构与算法之美2--复杂度分析(上)数据结构与算法之美3--...

  • 算法与数据结构(1),List

    算法与数据结构(1),List 算法与数据结构(2),Map 算法与数据结构(3),并发结构 习惯了,深夜更新博客...

  • 数据结构与算法-目录

    数据结构与算法-目录 C语言篇 数据结构和算法-C语言篇1-绪论数据结构和算法-C语言篇2-初识算法数据结构与算法...

  • 算法与数据结构(3),并发结构

    算法与数据结构(1),List 算法与数据结构(2),Map 算法与数据结构(3),并发结构 本来已经合上电脑了,...

  • 算法与数据结构(2),Map

    算法与数据结构(1),List 算法与数据结构(2),Map 算法与数据结构(3),并发结构 睡了不到六个小时,被...

  • 数据结构与算法

    参考链接:算法 数据结构与算法 iOS数据结构 和 算法 上 算法 1、数据结构: 集合结构: 线性结构: 树形结...

网友评论

      本文标题:数据结构与算法

      本文链接:https://www.haomeiwen.com/subject/logbyftx.html