数据结构
文章平均质量分 51
张先生的blog
这个作者很懒,什么都没留下…
展开
-
冒泡排序原理及优化实现(JS)
本文主要分析了两大入门排序算法——选择排序和冒泡排序通过两个例子结合实际代码,使之更容易被理解。原创 2017-08-19 22:23:07 · 760 阅读 · 0 评论 -
单链表的基本操作(读取、插入、删除)及优缺点总结
1.单链表的读取获取链表第i个数据的算法思路: 1. 声明一个指针p指向链表的第一个结点,初始化j从1开始; 2. 当j< i 时,遍历链表,让p的指针向后移动,不断指向下一结点,j累加1; 3. 若到链表末尾p为空,说明第i个元素不存在; 4. 否则查找成功,返回结点p的数据。/*初始条件:顺序线性表L已存在,1≤i≤ListLength(L)*//*操作结果: 用e返回...原创 2018-03-06 19:53:17 · 47549 阅读 · 3 评论 -
静态链表的实现
静态链表用数组来代替指针,来描述单链表 将数组元素分成两个数据域,data和cur。data用来存放数据元素,cur存放该元素的后继在数组中的下标(游标)。<游标实现法>1.基本结构/*线性表的静态链表存储结构*/#define MAXSIZE 1000typedef struct{ElemType data;int cur; /*游标(Cursor),...原创 2018-03-07 11:38:29 · 3533 阅读 · 0 评论 -
线性表的顺序存储结构(插入与删除)
1.顺序存储定义线性表中的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。2.地址计算方法线性表的第i个元素是要存储在数组下标为i-1的位置。 假设占用的是c个存储单元,那么线性表中的第i+1个数据元素的存储位置和第i个数据元素存储位置满足下列关系式(LOC表示获得存储位置的函数)LOC(ai+1) = LOC(ai) + c即LOC(ai) =...原创 2018-03-05 10:42:18 · 15874 阅读 · 1 评论 -
选择排序原理与实现(JS)
选择排序实现原理选择排序是一种原址比较排序算法。大致思路是找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推。实现代码function selectionSort(arr) { if (arr.length < 2) { return arr; } for (var i = 0; i < arr.length - 1; i...原创 2018-10-21 22:10:01 · 863 阅读 · 0 评论 -
直接插入排序原理及实现(JS)
直接插入排序实现原理:具体定义是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用 in-place 排序(即只需用到 O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。具体怎么实现呢,大白话就是:我们假设第一项已经排好了,然后将待插入的项(第二项)和它进行比较,决定第二...原创 2018-10-21 22:16:13 · 1816 阅读 · 0 评论