
数据结构与算法
我是60岁程序员
比你优秀的人还在奔跑,我为什么要停下来
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java版数据结构与算法—有序数组和二分法查找
class OrderlyAndBinarySearch { private long[] a; private int nElems; public OrderlyAndBinarySearch(int maxSize){ a = new long[maxSize]; nElems = 0; } //查看大小元素个数...原创 2018-11-12 22:39:25 · 293 阅读 · 0 评论 -
java版数据结构与算法—递归(三角数字)
package com.zoujc.triangle;/** * 递归:三角数字 */class TriangleApp { public static void main(String[] args){ int n = 10; System.out.println(triangle(n)); } public static int...原创 2018-11-21 22:19:15 · 236 阅读 · 0 评论 -
java版数据结构与算法—递归(二分法查找)
package com.zoujc.triangle;/** * 递归:二分查找 */class OrdArray { private int[] a; private int nElems; public OrdArray(int max){ a = new int[max]; nElems = 0; } publ...原创 2018-11-24 00:26:11 · 439 阅读 · 0 评论 -
java版数据结构与算法—链表实现栈
package com.zoujc;/** * 用链表实现栈 */class MyLinkStack { private Link first; public MyLinkStack(){ first = null; } //判空 public boolean isEmpty(){ return first == n...原创 2018-11-19 22:23:00 · 221 阅读 · 0 评论 -
java版数据结构与算法—链表实现队列
package com.zoujc.QueueLink;/** * 链表实现队列 */class FirstLastList { private Link first; private Link last; public FirstLastList(){ first = null; last = null; } //...原创 2018-11-19 22:41:43 · 187 阅读 · 0 评论 -
java版数据结构与算法—递归(变位字)
package com.zoujc.triangle;import java.io.IOException;/** * 变位字(递归的效率并不如for循环高) */class AnagramApp { static int size; static int count; static char[] arrChar = new char[100]; pu...原创 2018-11-22 22:38:43 · 384 阅读 · 0 评论 -
java版数据结构与算法—二叉树遍历
package com.zoujc.tree;import java.util.LinkedList;import java.util.Stack;/** * 二叉树遍历 */public class Binaryorder { private TreeNode root; //根节点 public Binaryorder() { } pu...原创 2018-11-25 18:36:10 · 1313 阅读 · 1 评论 -
java版数据结构与算法—递归(汉若塔)
package com.zoujc.triangle;/** * 汉诺塔 */class TowersApp { public static void main(String[] args){ doTowers(3,'A','B','C'); } public static void doTowers(int topN,char from,char...原创 2018-11-24 21:09:53 · 333 阅读 · 0 评论 -
java版数据结构与算法—堆、堆排序
优先级队列:用有序数组实现,删除最大数最快O(1),插入最慢用堆实现优先级队列,插入和删除都很快O(logN)堆:是一种树,一种特殊的二叉树特点:1.他是完全的二叉树,除了树的最后一层节点不需要是满的,其他一层从左到右都是满的。2.它常常用一个数组实现。3.堆中每一个节点都满足堆的条件,父节点的关键字要大于所有子节点。堆是弱序,(接近没有排序,不支持遍历),最大好处,快速移除最大节点...原创 2018-11-28 22:39:04 · 311 阅读 · 0 评论 -
java版数据结构与算法—线性探测哈希表
package com.zoujc.hash;/** *哈希表: 优点:速度快(插入和查找) * 缺点:基于数组,不能有序遍历 * 键值对:通过键访问值 * 冲突:不同的关键字经过哈希化得到的数组下标出现了重复 * 解决冲突:1.开放地址法(线性探测 二次探测 再哈希法) * 2.链地址法 */public class Dat...原创 2018-11-26 23:09:20 · 2152 阅读 · 0 评论 -
java版数据结构与算法—优先级队列
/** * 优先级队列,排好序的队列插入和删除 */class PriorityQueue { int a[]; int maxSize; int nItems; public PriorityQueue(int size){ maxSize = size; a = new int[maxSize]; nItem...原创 2018-11-16 22:41:29 · 179 阅读 · 0 评论 -
java版数据结构与算法—队列、两个栈实现一个队列
/** * 队列:先进先出 */class MyQueue { int a[]; int maxSize; //大小 int front; //开头 int rear; //结尾 int nItems; //元素个数 //初始化 public MyQueue(int size){ maxSize = size; ...原创 2018-11-16 21:56:16 · 250 阅读 · 0 评论 -
java版数据结构与算法—冒泡排序
/** * 冒泡排序规则: * 1.比较两个相邻对象 * 2.如果左边的大于右边的,则调换位置 * 3.向右移动一个位置,比较接下来的两个对象 * 时间复杂度:O(log n^2) */class ArrayBubble { public static void bubbleSort(int arr[]){ for(int i=arr.length - 1; ...原创 2018-11-13 22:42:20 · 116 阅读 · 0 评论 -
java版数据结构与算法—快速排序
/** * @author zoujc * @date 2018/11/15 * 快速排序:时间复杂度:O(NlogN) */public class ArrayQuickSort { public static void quickSort(int arr[], int low, int high){ //1.找到递归算法的入口 if(low > high){ r...原创 2018-11-15 18:15:49 · 262 阅读 · 1 评论 -
java版数据结构与算法—栈(数组方式)
/** * 栈就是一组记录,表示形式先进后出 * * 数组 链表 树 适应于数据库应用中做数据记录 * 栈和队列 1.通常情况作为程序员的工具来运用 * 2.受限访问 * 3.更加抽象(主要通过接口进行定义) * * 栈:数组表示 */class MyStack { private int arr[] ; ...原创 2018-11-15 21:37:05 · 181 阅读 · 0 评论 -
java版数据结构与算法—栈(判断括号是否匹配)
/** * 括号是否匹配 {} () [] */class IsMatch { private char arr[]; private int maxSize; private int top; public IsMatch(int size){ maxSize = size; arr = new char[maxSize];...原创 2018-11-15 23:06:24 · 793 阅读 · 0 评论 -
java版数据结构与算法—数组、替换字符串中的空格、找出旋转数组中最小值
class ArrayTest { private long[] a; private int nElems; public ArrayTest(int max){ a = new long[max]; nElems = 0; } //查找指定的项 public boolean find(long searchKey){ ...原创 2018-11-12 09:16:40 · 229 阅读 · 0 评论 -
java版数据结构与算法—双端链表
/** * 双端链表 */class MyLinkList { public Link first; public Link last; public MyLinkList(){ first = null; last = null; } //判空 public boolean isEmpty(){ ...原创 2018-11-18 22:48:01 · 145 阅读 · 0 评论 -
java版数据结构与算法—选择排序
/** * 选择排序:时间复杂度O(n^2), * 比冒泡排序稍好点,交换次数少 */class ArraySelect { public static void selectSort(int arr[]){ for(int i=0;i<arr.length;i++){ int min = i; for(int ...原创 2018-11-14 21:23:55 · 160 阅读 · 0 评论 -
java版数据结构与算法—插入排序
/** * 插入排序:时间复杂度O(n^2),但比冒泡排序,选择排序要好 * 把下标为1的先取出来,当做临时变量,下标为0的元素相当于排好序的 * 然后把下标为1的元素与下标为0的元素比较(升序),如果临时变量比下标为0 * 的元素小,则下标为0的元素向后移动一个下标,临时变量插到下标为0的位置中, * 在下标为2的作为临时变量。。。以此类推 */class ArrayInsert ...原创 2018-11-14 22:14:45 · 253 阅读 · 0 评论 -
java版数据结构与算法—有序链表
package com.zoujc.sortLink;/** * 有序链表 */class Link { public int dData; public Link next; public Link(int dd){ dData = dd; } public void display(){ System.out.p...原创 2018-11-20 21:08:17 · 241 阅读 · 0 评论 -
java版数据结构与算法—哈希表(再哈希法)
package com.zoujc.hashDouble;/** * 哈希表:再哈希法 */public class DataItem { private int iData; public DataItem(int data){ iData = data; } public int getKey(){ return iDa...原创 2018-11-27 21:58:29 · 1390 阅读 · 0 评论