数据结构
weixin_12345
这个作者很懒,什么都没留下…
展开
-
数据结构(查找:二叉排序树 + 平衡二叉树 + B-树 + 哈希表)
一、查找表 查找表是由同一类型的数据(或记录)构成的集合 对查找表进行的操作有: (1)查找某个“特定的”数据元素是否在表中 (2)查找某个“特定的”数据元素的各种属性 (3)在查找表中插入一个数据元素 (4)从查找表中删除一个数据元素 (1)(2)是静态查找,(3)(4)静态查找 二、二叉排序树(BST)(二叉查找树) 1.性质: (1)若它的左子树不空,则左子树上所有结点的值均小于根节点 (2...原创 2019-03-31 20:53:35 · 417 阅读 · 0 评论 -
数据结构基础(线性表+栈+队列+树+图)
根据数据元素之间分为4类基本结构: (1)集合(2)线性结构(3)树形结构(4)图状结构或网状结构 typedef int Status; 双向链表中插入一个结点时指针的变化情况: s -> prior = p -> prior; p -> proir -> next = s; s -> next = p; p -> proir = s; ...原创 2019-03-29 18:52:39 · 1529 阅读 · 0 评论 -
数据结构(内部排序:插入排序+希尔排序+冒泡排序+快速排序+选择排序+归并排序+堆排序)
内部排序:待排序的记录存放在计算机随机存储器中进行的排序过程 外部排序:待排序记录的数量很大,内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序过程。 稳定的排序方法:如果有两个元素相等,排序前后的相对位置不变则是稳定的,否则所用的排序方法就是不稳定的。 不稳定的排序: 选择排序、快速排序、希尔排序、堆排序 (选择排序不稳定:4 (4) 2---- 2 (4) ...原创 2019-03-31 22:27:19 · 445 阅读 · 0 评论 -
排序之归并排序(MergeSort())
import java.util.Arrays; public class MergeSort { public static void main(String[] args) { int[] arr = {9,8,7,6,5,4,3,2,1}; sort(arr); System.out.println(Arrays.toString(arr)); } private...原创 2019-03-27 10:42:49 · 165 阅读 · 0 评论 -
快速排序
#include<stdio.h> void quickSort(int a[],int left,int right) { int i=left; int j=right; int temp=a[left]; if(left>=right) return; while(i!=j) { while(i<j&&a[j]&...原创 2019-03-21 14:40:14 · 85 阅读 · 0 评论 -
红黑树
二叉查找树由于在频繁的动态更新过程中,可能会出现树的高度远大于 log2n的情况,所以就会导致各个操作效率下降,最坏的情况下就会退化为链表,变为O(n).很明显,想要解决这个问题,有效的一种办法就是使得树的高度不要差很多,也就是平衡它. 最先发明的平衡二叉查找树是AVL树,(它严格符合平衡二叉查找树的定义,即任何节点的左右子树高度相差不超过 1,是一种高度平衡的二叉查找树。)但是在工程中,我们经常...原创 2019-04-28 21:50:07 · 76 阅读 · 0 评论 -
数据结构:外部排序+胜/败者树
排序之外部排序 有时,待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,而外部排序是指待排序的内容不能在内存中一下子完成,它需要做内外存的内容交换),外部排序常采用的排序方法也是归并排序,这种归并方法由两个不同的阶段组成: 1、采用适当的内部排序方法对输入文件的每个片段...原创 2019-07-28 12:05:33 · 355 阅读 · 0 评论