- 博客(11)
- 资源 (2)
- 收藏
- 关注
转载 数据结构-单链表
单链表线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。对于每个节点来说,除了存储其本身的信息(数据值)之外,还需存储一个指示其直接后继的结点的引用。存储数据元素信息的部分称为数据域,存储直接后继结点引用的部分成为指针域 。优点——增、删速度快。缺点——不能随机访问。 链表是一种数据结构,和数组同级。比如,Java中我们使用的Ar
2017-05-02 22:31:33 221
原创 排序算法总览
1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。算法总览:
2017-05-02 22:23:36 173
原创 基数排序
基数排序 基于桶式排序,将要排序的数字一位一位的比较,经历多次桶式排序,得出最终的序列 如果要排序的元素可以分成多位,并且每一位都在一个固定的范围内,则可以用这种排序方法,如对10进制数字的排序有数字23,35,9,73,3,314,11,1234,5,可以看出来,每一位数字的取值范围都是0到9,所以我们可以用10个桶来进行排序,分别编号0到9。①第一遍排序,按照最低位数字将各个数字存入
2017-05-02 22:13:43 252
原创 桶式排序
桶式排序 有限个数字m,每个数字的大小都在1与n之间,则我们可以假设有n个桶,遍历m个数字,将其存入对应的桶中(如数字的值为3,就存入3号桶,桶的值对应存入数字的个数 桶号 1 2 3 4 5 计数 1 1 2 0 1我们按照桶的序号将数字倒出来,如下: 桶的倒出顺序 数字队列 5号桶倒出1个5 5 4号桶倒出0个4 5 3
2017-05-02 22:12:25 1220 2
原创 归并排序
归并排序 归并(Merge)排序法是将两个(或两个以上)有序集合合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为一个有序序列。合并过程 设r[i…n]由两个有序子表r[i…m]和r[m+1…n]组成,两个子表长度分别为n-i +1、n-m。 1. j=m+1;k=i;i=i; //置两个子表的起始下标及辅助数组的起始下标 2.
2017-05-02 22:10:18 136
原创 交换排序-冒泡排序
冒泡排序 交换排序,通过相邻数据的交换来达到排序的目的算法流程 对数组中的各数据,一次比较相邻的两个元素的大小。 如果前面的数据大于后面的数据,就交换这两个数据,经过第一轮的多次比较排序后,便可把最小的数据排好 再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据的顺序。 例如初始数据:118 101 105 127 112一次排序: 101
2017-05-02 21:52:10 189
原创 选择排序—堆排序
堆排序是一种树形选择排序,是对直接选择排序的有效改进。基本思想堆的定义如下:具有n个元素的序列(k1,k2,…,kn),当且仅当满足 时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点(堆顶元素)的值是最小(或最大)的。如: (a)大顶堆序列:(96, 83,2
2017-05-02 21:39:32 315
原创 选择排序—简单选择排序
简单选择排序 在要排序的一组数中,选出最小的数与第一个位置的数交换;然后再剩下的数再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。排序流程 首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。 接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换。 然后,这样不断重复,直到最后两个数据完成交换,至此,便完成了对原
2017-05-02 21:20:29 407
原创 插入排序-希尔排序
Shell排序算法严格来说基于插入排序的思想,其又称为希尔排序或者缩小增量排序。基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。排序流程 将有N个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一对 一个循环是每一个序列对排好顺序。 然后,再变为n/4 个序列,再次排序。
2017-05-02 21:15:11 151
原创 算法-插入排序
基本思想: 插入排序是通过对未排序的数据执行执行逐个插入至合适的位置而完成排序工作将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 直接插入排序示例: (PS:图中的数据和下面代码中的排序数据有出入,请不要介意。原理
2017-05-02 21:03:22 307
原创 数据结构—单链表
单链表线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。对于每个节点来说,除了存储其本身的信息(数据值)之外,还需存储一个指示其直接后继的结点的引用。存储数据元素信息的部分称为数据域,存储直接后继结点引用的部分成为指针域 。优点——增、删速度快。缺点——不能随机访问。 链表是一种数据结构,和数组同级。比如,Java中我们使用的Ar
2017-05-01 21:06:08 270
jdk1.8u144 官方版本windows
2017-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人