数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。 常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。 1、数组 数组是可以再内存中连续存储多个元 ...
分类:
其他好文 时间:
2019-11-18 18:23:59
阅读次数:
69
各种排序算法所需辅助空间 1、 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1); 2、 快速排序为O(logn ),为栈所需的辅助空间; 3、 归并排序所需辅助空间最多,其空间复杂度为O(n ); 4、链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。 ...
分类:
编程语言 时间:
2019-11-16 21:32:40
阅读次数:
74
```c /* Author: Zoro Date: 2019/11/10 Function: Valid Anagram Title: leetcode 242 anagram.c think: 桶排序思想 */ #include #include #include bool isAnagram(... ...
分类:
其他好文 时间:
2019-11-11 12:39:55
阅读次数:
99
基数排序 2019-11-10 11:42:38 by冲冲 1、概念 基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 2、基本思想 设有一个初始序列为: R {50, 123, 543 ...
分类:
编程语言 时间:
2019-11-10 17:16:17
阅读次数:
74
学号20182325袁源 《数据结构与面向对象程序设计》第8周学习总结 教材学习内容总结 排序、算法、栈、队列 插入排序、交换排序,选择排序、基数排序、归并排序 用时间效率、空间效率、稳定性(数值相等次序不变)衡量算法。 树:由n个结点组成的有限集合 n=0为空树 非线性结构 DNS; 一对多;有且 ...
分类:
其他好文 时间:
2019-11-04 21:27:29
阅读次数:
84
排序算法系列博客: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 计数排序 基数排序 九大排序排序是数据结构体系中最重要的内容之一,这一块必须要非常熟练的掌握,应该做到可以立马写出每个排序的代码,有多种实现方法的必须多种都能很快写出来,当然对各个排序的性能的了解也是基础 ...
分类:
编程语言 时间:
2019-11-04 20:12:41
阅读次数:
133
本篇博客是为了熟悉冒泡选择插入希尔归并快速基数排序这几种排序算法而写的,基本上是看了书上代码,然后自己手敲理解一遍。 ...
分类:
编程语言 时间:
2019-10-30 00:08:44
阅读次数:
103
稳定 冒泡排序 冒泡排序是不断比较相邻两个元素,并不断交换,最后把大的放到数组后面。第一趟遍历会把最大的元素放到(n-1)位置,第二趟遍历会把第二大的元素放到(n-2)的位置,以此类推。 最好的情况是当数组有序,跑一次内存循环(时间复杂度为O(N))后,因为isSorted为true,外层循环直接退 ...
分类:
编程语言 时间:
2019-10-29 23:43:23
阅读次数:
95
H-Index是一个判断发表论文质量的参数。这个参数的定义是,如果作者发布了N篇论文,其中有h篇论文至少被引用了h次;剩下的论文的被引用次数都不超过h次。 两种思路,第一种是排序;第二种是用到桶排序。 排序法:例子, 按照从大到小排序,排序过后的数组为[6, 5, 3, 1, 0]。此时扫描数组,判 ...
分类:
其他好文 时间:
2019-10-29 09:47:12
阅读次数:
63
//希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本.但希尔排序是非稳定排序算法. 希尔排序是基于插入排序的以下两点性质而提出改进方法的 : 1. 插入排序在对几乎已经排好序的数据操作时,效率高,既可以达到线性排序的效率 2. 但插入排序一般来说是低效的,因为插入排序每次只能将数据移... ...
分类:
编程语言 时间:
2019-10-26 13:38:52
阅读次数:
83