![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DataStructure
文章平均质量分 71
卧浪居士
尘世如潮人如水,只叹江湖几人回.
展开
-
数据结构基础(1)-------------绪论
1.数据类型:是指一组性质相同的值的集合及其定义在此集合上的一些操作的总称;2.数据结构的逻辑结构分为:集合、线性、树形、图形结构;物理结构为顺序存储与链式存储结构;3.抽象数据类型:ADT---是指一个数学模型及定义在该模型上的一组操作;4.数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合;算法分析方法:5.算法:其实解决特定问题的求解步骤的描述,在计算机中表示为原创 2014-02-28 14:50:57 · 473 阅读 · 0 评论 -
大数据的排序问题
http://www.cnblogs.com/songsu/articles/1457666.html算法的力量:位运算在排序与搜索中的应用楔子: 问题:假设一个文件中有9亿条不重复的9位整数,现在要求对这个文件进行排序。一般解题思路: 1、将数据导入到内存中 2、将数据进行排序 (比如插入排序、快速排序) 3、将排序好的数据存入文件难题: 一个整数为4个字节即使使用数组也原创 2014-04-25 21:31:51 · 1436 阅读 · 0 评论 -
数据结构基础(14)------------归并排序
数据结构基础(14)------------归并排序原创 2014-04-09 20:00:11 · 479 阅读 · 0 评论 -
数据结构基础(13)------------Heap排序
数据结构基础(13)------------Heap排序1.1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法( Heap Sort )。2.什么是堆?n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):(1)原创 2014-04-03 14:07:17 · 546 阅读 · 0 评论 -
数据结构基础(12)------------Shell排序
数据结构基础(11)------------Shell排序1.Shell排序是DL. Shell于1959年针对直接插入排序算法改进提出的,属于插入排序的范畴,是对直接插入排序算法的改进。直接插入排序在基本有序时效率较高,并且在序列规模不是很大时效率也很高,Shell排序就是针对这两点进行改进。核心思想是:待排序列有n个元素,先取一个小于n的整数h1作为第一个增量,把待排序列以间隔h1原创 2014-04-02 20:55:37 · 670 阅读 · 0 评论 -
数据结构基础(7)------------插入排序
数据结构基础(7)------------插入排序1. 插入排序:插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。例如有一个长度为N的无序数组,进行N-1次的插入即能完成排序;第一次,数组第1个数认为是有序的数组,将数组第二个元素插入仅有1个有序的数组中;第二次,数组前两个元素组成有序的数组,将数组第三个元素插入由两个元素构成的有序数组中......第N-1次,数组前N-1个元素原创 2014-03-21 12:55:28 · 496 阅读 · 0 评论 -
数据结构基础(11)------------输出字符串的所有组合( Permutation)--腾讯笔试附加题
数据结构基础(11)------------输出字符串的所有组合( Permutation)腾讯笔试附加题1.题目介绍:给出一个字符串的所有排列,例如“abc”输出,“a,b,c,ab,ac,bc,abc”;2.首先应当考虑测试用例: 1.功能测试:“adcd”,"aabd","abbd","ab原创 2014-04-01 18:13:11 · 737 阅读 · 0 评论 -
数据结构基础(9)------------简单选择排序(Simple Selection Sort)
数据结构基础(9)------------简单选择排序(Simple Selection Sort) 1.简单选择排序:就是通过n-i次关键字比较,从n-i-+1个记录中找出关键字最小的记录,并和第i个记录进行交换;void SimpleSelectionSort(int *a,int len) //此算法其实与冒泡排序的第一个思想比较雷同,之前的那个算法{ int temp=0;原创 2014-03-21 14:13:47 · 688 阅读 · 0 评论 -
数据结构基础(8)------------冒泡排序(Bubble Sort)
数据结构基础(7)------------冒泡排序(Bubble Sort)1.冒泡排序的思想就是交换排序,基本思想是两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止;void BubbleSort1(int *a,int len) //最简单的算法,但是其并非标准的排序算法,因为不满足两两交换的前提,由此可知{原创 2014-03-21 13:52:53 · 670 阅读 · 0 评论 -
数据结构基础(10)------------二分查找算法(BinarySearch)
数据结构基础(9)------------二分查找算法(BinarySearch)1.二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如原创 2014-03-31 14:35:59 · 1024 阅读 · 0 评论 -
数据结构基础(6)------------AVL树的理解
数据结构基础(6)------------AVL树的理解1.在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis,他原创 2014-03-13 09:44:34 · 703 阅读 · 0 评论 -
数据结构基础(5)------------二叉排序树(BST)
1.概念:二叉排序树,又名为二叉查找树。要么是一棵空树,要么是具有以下三性质的二叉树: A.若其左子树不为空,则其左子树的所有结点的值均小于根结点的值; B.若其右子树不为空,则其右子树的所有结点的值均大于根结点的值; C.它的左右子树也分别为二叉树。 其定义依然采用了递归的定义方法!而且其元素之间满足一定的次序关系,使得原创 2014-03-06 19:52:22 · 715 阅读 · 0 评论 -
数据结构基础(4)————next数组的理解
1.理解KMP算法,先懂得求解next数组是关键;下面的这篇是求解next数组时的运行过程;程序代码如下:void get_next(String *T,int * next){ int i=1,j=0; next[1]=0; while(i { if(j==0 || T[i]==T[j]) {原创 2014-03-06 10:27:15 · 3869 阅读 · 0 评论 -
数据结构基础(3)-------------树
1.树的定义:其是n(n>=0)个节点的有限集。n=0时为空树。在任意一颗飞空树中:(1)有且仅有一个特定的称为根的结点;(2)当n>1时,其余结点可以分为m个互不相交的有限集,其中每一个集合本身都是一棵树,并且称之为根的子树;2.树的基本概念:子树的数目称为节点的度;孩子,双亲,兄弟,层次,树中结点最大层次称为树的深度或高度;3.树是一对多的结构,不论是顺序存储还是链式存储都不恩能够单独原创 2014-03-05 16:16:11 · 664 阅读 · 0 评论 -
数据结构基础(2)-------------线性表
1.线性表顺序存储结构的优点:一是无需为元素之间的逻辑关系而增加额外的存储空间;二是可以迅速的取表中任意位置的元素。其缺点为:一是插入和删除需要移动大量的元素;二是线性表需要固定的存储空间,不适用于线性表长度变化较大的场合,也就是不灵活;三是有存储空间的碎片;(其实,动态数组在一定程度上可以避免此类情况的发生,比如STL中的std::vector)2. 线性表的链式存储结构:不仅要原创 2014-03-02 13:42:38 · 627 阅读 · 0 评论 -
数据结构基础(15)------------QuickSort
数据结构基础(15)------------QuickSort原创 2014-04-10 09:29:02 · 536 阅读 · 0 评论