![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
水-滴
这个作者很懒,什么都没留下…
展开
-
排序算法(五):归并排序与递归
排序算法(五):归并排序与递归转载 2018-05-10 14:32:41 · 3075 阅读 · 0 评论 -
数据结构(四):二叉树
一、简介通过前面的学习,我们知道,有序数组可以利用二分查找法快速的查找特定的值,时间复杂度为O(log2N),但是插入数据时很慢,时间复杂度为O(N);链表的插入和删除速度都很快,时间复杂度为O(1),但是查找特定值很慢,时间复杂度为O(N)。那么,有没有一种数据结构既能像有序数组那样快速的查找数据,又能像链表那样快速的插入数据呢?树就能满足这种要求。不过依然是以算法的复杂度为代价在编程的世界里,...转载 2018-05-16 17:11:30 · 264 阅读 · 0 评论 -
数据结构(三):链表
一、简介 链表是一种插入和删除都比较快的数据结构,缺点是查找比较慢。除非需要频繁的通过下标来随机访问数据,否则在很多使用数组的地方都可以用链表代替在链表中,每个数据项都包含在“链结点”中,一个链结点是某个类的对象。每个链结点对象中都包含一个对下一个链接点的引用,链表本身的对象中有一个字段指向第一个链结点的引用,如下图所示:在数组中,每一项占用一个特定的位置,这个位置可以用一个下标号直接访问,...转载 2018-05-16 16:51:41 · 250 阅读 · 0 评论 -
数据结构(二):数组、栈、队列
一、数组 数组是应用最广泛的一种数据结构,常常被植入到编程语言中,作为基本数据类型使用,因此,在一些教材中,数组并没有被当做一种数据结构单独拿出来讲解(其实数组就是一段连续的内存,即使在物理内存中不是连续的,在逻辑上肯定是连续的)。其实没必要在概念上做纠缠,数组可以当做学习数据结构的敲门砖,以此为基础,了解数据结构的基本概念以及构建方法数据结构不仅是数据的容器,还要提供对数据的操作方法,比如...转载 2018-05-16 11:35:47 · 842 阅读 · 0 评论 -
数据结构(一):简介
一、简介 数据结构是用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。 数据结构有逻辑上的数据结构和物理上的数据结构之分。 逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。二、种类1、数组 数组就是一段连续的内存,即使在物理内存中不是连续的,在逻辑上肯定是连续的2、栈 后进先出3、队列...原创 2018-05-11 16:00:50 · 218 阅读 · 0 评论 -
排序算法(四):插入排序
一、基本思想在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数找到相应位置并插入,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。java实现://插入排序public void insertionSort(){ int len = array.length; int counter = 1; ...转载 2018-05-10 11:41:25 · 152 阅读 · 0 评论 -
排序算法(三):选择排序
一、基本思想 冒泡排序中有一个缺点,比如,我们比较第一个数a1与第二个数a2的时候,只要a1比a2大就会交换位置,但是我们并不能确定a2是最小的元素,假如后面还有比它更小的,该元素还会与a2再次进行交换,而且这种交换有可能发生多次才能确定a2的最终位置。选择排序可以避免这种耗费时间的交换操作,从第一个元素开始,扫描整个待排数组,找到最小的元素放之后再与第一个元素交换位置,然后再从第二个元素开...转载 2018-05-10 11:31:16 · 170 阅读 · 0 评论 -
排序算法(二):冒泡排序
原创:https://blog.csdn.net/u012152619/article/details/47305859转载 2018-05-10 11:12:53 · 629 阅读 · 0 评论 -
排序算法(一):简介
一、算法算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。第一首先要保证算法的正确性第二分析算法的时间复杂度二、时间复杂度一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句原创 2018-05-10 11:04:10 · 219 阅读 · 0 评论 -
排序算法(十):八大排序算法总结
原创:https://blog.csdn.net/u012152619/article/details/47730021转载 2018-05-10 15:11:13 · 312 阅读 · 0 评论 -
排序算法(九):基数排序
一、基本思想二、算法分析原创:https://blog.csdn.net/u012152619/article/details/47405799转载 2018-05-10 15:05:19 · 8851 阅读 · 4 评论 -
排序算法(八):堆排序
一、基本思想二、算法分析原创:https://blog.csdn.net/u012152619/article/details/47405799转载 2018-05-10 15:03:17 · 132 阅读 · 0 评论 -
排序算法(七):希尔排序
一、基本思想二、算法分析原创:https://blog.csdn.net/u012152619/article/details/47405799转载 2018-05-10 14:59:23 · 318 阅读 · 0 评论 -
排序算法(六):快速排序
一、基本思想快速排序也是基于分治算法得。步骤如下:(1)选择一个基准元素,通常选择第一个元素或者最后一个元素;(2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的元素值比基准值大;(3)此时基准元素在其排好序后的正确位置;(4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。上图中,演示的是第一轮快速排序的过程,首先将第一个元...转载 2018-05-10 14:36:05 · 191 阅读 · 0 评论