Algorithms
CvShrimp
这个作者很懒,什么都没留下…
展开
-
插入排序(Insert-Sort)
插入排序(Insert-Sort)插入排序的时间复杂度为O(n²),算法思路为将待排序的数据一个个的插入已经排序的序列中,下面是它的Java实现/** * Created by CvShrimp on 2017/10/10. */public class InsertSort { public static void insertSort(int[] array) {原创 2017-10-10 21:59:49 · 441 阅读 · 0 评论 -
归并排序(Merge-Sort)
归并排序是一种比插入排序更加高效的排序算法,尤其是规模较大的时候,其时间复杂度为O(nlgn)而插入排序为O(n²),下面给出数组的归并排序的Java实现代码package com.cvshrimp.algorithms;/** * Created by CvShrimp on 2017/9/26. */public class MergeSort { public static vo原创 2017-09-28 21:02:23 · 293 阅读 · 0 评论 -
堆排序(Heap-Sort)
堆排序(Heap-Sort) (二叉)堆是一个数组,它可以被看成一颗近似的完全二叉树。树上的每个节点对应数组中一个元素。除了最底层外,该树是完全充满的,而且是从左向右填充的。堆排序是一种用堆来实现的排序算法,它的时间复杂度为O(nlgn),下面是堆排序的Java实现:import java.util.Arrays;/** * Created by CvShrimp on 2017/10/11.原创 2017-10-14 20:17:57 · 238 阅读 · 0 评论 -
计数排序(Counting-Sort)
计数排序(Counting-Sort)计数排序假设n个输入元素的每一个都是在0到k闭区间的一个整数,它的时间复杂度为O(n),下面是计数排序的Java实现:import java.util.Arrays;/** * Created by CvShrimp on 2017/11/11. */public class CountingSort { public static int[] c原创 2017-11-11 12:48:58 · 265 阅读 · 0 评论 -
快速排序(Quick-Sort)
快速排序(Quick-Sort)对于包含n个数的数组来说,快速排序是一种最坏情况下时间复杂度为O(n²)的排序算法。虽然最坏情况下的时间复杂度很差,但是快速排序通常是实际应用中最好的选择,因为它的平均性能非常好。 下面是算法导论中给出的快速排序的伪代码: QUICK-SORT(A,p,r) if p < r q = PARTITION(A,p,r) QUICK-SORT(A,p原创 2017-11-02 22:22:08 · 400 阅读 · 0 评论 -
栈(Stack)
栈(Stack)栈(Stack)是一种基本的数据结构,它有先进先出的特性,有入栈、出栈等操作,下面给出栈的Java实现/** * Created by CvShrimp on 2017/10/21. */public class Stack<T> { private Node top; private int size = 0; private class Node {原创 2017-12-20 22:21:18 · 273 阅读 · 0 评论 -
二叉搜索树(BST)
二叉搜索树(BinarySearchTree)一棵二叉搜索树是以一颗二叉树来组织的。对于它的每一个节点Node,其左子树的关键字最大不超过Node.key,其右子树中的关键字最小不低于Node.key,下面是它的Java实现:/** * Created by wukn on 2017/11/7. */public class BinarySearchTree<Key extends Comp原创 2017-12-27 21:39:50 · 224 阅读 · 0 评论 -
LRU缓存的简单实现
LRU缓存的Java实现LRU是Least Recently Used的缩写,即最近最少使用。它将最近一段时间不使用的数据替换掉。LRU算法的提出基于一个事实:在前面几条指令中频繁使用的页面很可能在后面的几条指令中频繁使用。这里使用一个链表结构来保存元素的使用顺序,如果一个元素被使用过,那么它将被放到链表头的下一个节点,如果此时缓存满了,同时也要删除链表尾节点的前一个节点,具体实现如下:...原创 2018-03-23 20:54:17 · 311 阅读 · 0 评论 -
有序链表多路归并
有序链表多路归并Merge k Sorted ListsMerge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[1->4->5,1->3->4,2->6]Output: 1-&...原创 2019-08-31 13:41:47 · 387 阅读 · 1 评论