![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
方清寒
这个作者很懒,什么都没留下…
展开
-
快速排序
快排的核心就是通过partation找到基准元素(即基准元素左边的都比他小,右边的都比他大),并对待排数组进行基本的排序 /** * 快排核心部分 * @param arr 待排数组 * @param low 开始部分 * @param heigh 结束部分 */ private static void quickSort(int[] arr, int low, int...原创 2019-02-15 16:51:25 · 93 阅读 · 0 评论 -
简单选择排序
/** * 选择排序 * @param arr 待排数组 */ public static void selectSort(int[] arr) { int k; for (int i = 0; i < arr.length - 1; i++) { k = i; for (int j = i + 1; j < arr.length; j++) {...原创 2019-02-15 17:24:35 · 134 阅读 · 0 评论 -
冒泡排序
冒泡排序 /** * 冒泡排序 * @param arr 待排数组 */ public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i...原创 2019-02-16 08:16:42 · 81 阅读 · 0 评论 -
直接插入排序
直接插入排序 /** * 直接插入排序 * @param arr 待排数组 */ public static void insertSort(int[] arr) { int t, j; for (int i = 1; i < arr.length; i++) { t = arr[i]; for (j = i - 1; j >= 0 &&...原创 2019-02-16 08:35:00 · 91 阅读 · 0 评论 -
二叉树的个人理解
二叉树节点/** * 节点 * @author Administrator * */public class Node { /** * 数据 */ public int data; /** * 左孩子 */ public Node leftChild; /** * 右孩子 */ public Node rightChild; ...原创 2018-08-01 15:16:39 · 461 阅读 · 0 评论 -
使用栈遍历二叉树(非递归)
先序遍历 /** * 先序遍历 * 根 左 右 */ @Override public List preOrderTraverse() { List list = new ArrayList(); Deque<Node> stack = new LinkedList(); Node cursor = root; // 根节点 while (!...原创 2019-02-13 10:05:55 · 916 阅读 · 0 评论 -
迪杰斯特拉(dijkstra)算法
上图 核心 // 核心算法 for (int i = 2; i <= n; i++) { // 要加入n-1顶点 // 找距离原点最近的顶点 min = Integer.MAX_VALUE; for (int j = 1; j <= n; j++) { if (book[j] == 0 && dis[j] <...原创 2019-02-14 10:47:12 · 163 阅读 · 0 评论 -
折半(二分)查找
使用迭代实现 /** * 折半查找(二分查找) * @param arr 待查数组 * @param key 待查元素 * @return 索引 */ public static int binarySearch(int[] arr, int key) { int low = 0, heigh = arr.length - 1, mid = 0; for (in...原创 2019-02-14 15:10:21 · 109 阅读 · 0 评论