- 博客(13)
- 收藏
- 关注
原创 算法实战java实现快速排序
快排原理介绍 在数组s中随便选出一数,做为枢纽值x。 s1和s2 大小不必相等。递归的向s1和s2使用上面的方法,结合起来就拍好序了。注意:在实际应用中数组的数量小于20,插入排序的速度快与快速排序。java实现public class QuickSort { private final int CUTOFF = 20; void quicksort( int[] list)
2017-10-22 16:03:17
261
原创 算法实战java实现插入排序,堆排序,归并排序
插入排序直接插入排序原理 每一个元素插入它前面排序好的元素中java实现 //直接插入排序,由小到大 void inserSort( int[] list) { int j; for( int p = 1; p < list.length; p++ ) { int temp = list[p]; //比
2017-10-21 16:52:22
308
原创 数据结构实战java实现二叉堆
什么是堆堆是一颗完全被填满的二叉树 形如这样的 而这样则不是完全二叉树 堆序性质每个节点都要的节点值都要大于(小于)子树的值。顺序实现特点 对于除0位置以外的,位置i,它的左子为2i,右子为2i+1。父亲为 i/2.具体实现排序原理插入原理上滤,在下一个位置上创建一个空位,插入值于空位的父亲值对比,若插入值较小,于父亲值交换位置。删除原理下滤,将第一个值删去,将最后一个位置的值放在第一个
2017-10-20 15:23:05
1527
原创 数据结构实战java实现hash表
此方法参考自《数据结构与算法-java实现》 我采用分离链接法来避免数据冲突。hash表概述通过hash函数将字符串,或者一个数字,经过整理变为数组的下标。 这样我们就可以得到一个时间复杂度为1的表。 而分离链接法 就是如果有俩个或以上的不同的key值hash化计算后结果相同。将这些值放在链表中。实现//使用分离链接法的hashtable 实现public class MyHashTa
2017-10-19 16:59:56
439
原创 数据结构实战java实现二叉查找树
此方法参考自数据结构与算法分析-java描述二叉树简介 形如这样的上级节点的值大于它的左支所有值,小于它的右支所有值,就叫做二叉树。二叉树的作用迅速查找构造表达式不平衡二叉树的链表实现public class MyBinarySearchTree<AnyType extends Comparable<? super AnyType>> { //ci此内部类构建每个的节点 pr
2017-10-17 14:54:48
317
原创 数据结构实战java实现队列
队列(queue)简介先进先出线性表,有俩个操作入队(enqueue)和出队(dequeue)。链表实现链表实现对于java来说比较简单,就不写了。顺序实现此方法参考自大话数据结构循环队列实现方法原理说明初始化 刚开始的front 和back 都为0.队列为空。 当出现这样的情况是队列为满。 也就是说在满的时候的数组会有一个空位。 判断满的条件为 (back + 1) % Queu
2017-10-16 16:11:46
330
原创 数据结构实战java实现栈
栈的实现在之前的myarraylist和mylinkedlist基础上都可以很方便的实现栈。栈的特点先进后出栈的作用实现递归,调用函数将复杂的计算操作转化为简单的操作(后缀表达式)学习计算机基本要素可以深入了解栈的作用。栈链表实现由于栈不需要索引所以只需要使用单链表即可public class MyStack<AnyType> { private int topstack; p
2017-10-15 12:34:08
255
原创 数据结构实战java实现线性表
此方法参照了《数据结构与算法分析,java语言描述》顺序表实现接口分析接口1Iterable<AnyType> 此接口来自于java.lang.iterable 接口定义的方法 iteratorIterator<T> iterator() 返回一个在一组 T 类型的元素上进行迭代的迭代器。 返回: 一个迭代器。 接口2java.util.Iterator<AnyTy
2017-10-13 12:29:31
453
原创 深入了解计算机系统初学记录
1.前言本书是以程序员的视角描述计算机系统的工作方式。2.信息表示和处理计算机使用8bit作为最小的内存单位。 目前常用的计算机表示法,二进制,16进制,10进制。寻址和字节顺序1.大端法(从内存末尾开始数据分布) 例如: 有16进制数 0x01234567 内存的低位是01,高位是67。 2.小端法(与大端法相反) 以上俩种方法现代计算机都支持,由不同的操作系统决定使用何种方法。3.程
2017-10-10 10:39:19
285
原创 Python+Django+apache2+ubuntu构架web服务器实战
1.系统环境说明ubuntu17.04 python 2.7.13 django 1.8.16 apache2 系统环境构架http://www.linuxidc.com/Linux/2014-05/101444.htm看这个博客2.建立djangowebapp不需要我进行赘述,请移步官方文档http://python.usyiyi.cn/translate/django_182/index
2017-09-03 19:24:08
700
原创 SICP 解题集
第一章练习1.15 a:p被使用啦5次 b:angle每乘以3,p多调用一次。空间和步数都为线性增长。 练习1.16 (cond [(= n 0) a] [(even? n) (first-e (square b) (/ n 2) a )] [(odd? n) (first-e b (- n 1) (* a b ))]))(define (square x)
2017-05-20 20:52:54
1772
原创 SICP学习记录
第一章 构造抽象过程1.1程序设计的基本元素1.基本表达形式 :表示语言的最简单的个体 2.组合的方法:从简单的东西出发构造复合的元素 3.抽象的方法:为复合元素命名,并把它们当作单元操作1.1.1表达式456 (+ 4 5) 91.1.2命名(define size 2)1.1.3组合式求值(+ (+ 1 2) (* 1 2)) (+ 3 2) 51.1.4复合过程(define (s
2017-05-18 20:11:02
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人