http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLists and ArrayLists (and Vectors) (Page last updated May 2001, Added 2001-06-18, Author Jack Shirazi, Publisher OnJava). Tips: ArrayList is faster than…
Running multiple tasks and processing the first result A common problem in concurrent programming is when you have various concurrent tasks that solve a problem, and you are only interested in the first result of those tasks. For example, you want to…
ALDS1_1_D-MaximumProfit. Codes: //#define LOCAL #include <cstdio> #include <algorithm> using namespace std; #define maxSize 200010 int a[maxSize]; int main() { #ifdef LOCAL freopen("E:\\Temp\\input.txt", "r", stdin); freope…
因为在开始写这个博客之前,已经刷了100题了,所以现在还是有很多题目没有加进来,为了方便查找哪些没加进来,先列一个表可以比较清楚的查看,也方便给大家查找.如果有哪些题目的链接有错误,请大家留言和谅解,链多了会眼花. # Title Category Difficulty 697 Degree of an Array Algorithms Easy 695 Max Area of Island Algorithms Easy 674 Longest Continuous In…
BookNote: Refactoring - Improving the Design of Existing Code From "Refactoring - Improving the Design of Existing Code" by Martin Flower. BookNote: Refactoring - Improving the Design of Existing Code Duplicated Code Long Method Large Class Long…
市面上有介绍Delphi的书籍(近来Delphi的书也是越来越少了),但没有一本系统的介绍Lazarus的书,这本书是网上的仅有的一本Lazarus教程,目前全部是英文,不过我已经着手开始翻译,争取尽快翻译完供大家学习!(原书来自 freepascal.org ) code.sd28.Sept.2013 IntroductionThis book is written for programmers who want to learn the Object Pascal Language. It…
http://en.wikipedia.org/wiki/CUDA CUDA From Wikipedia, the free encyclopedia CUDA Developer(s) NVIDIA Corporation Stable release 6.0 / November 14, 2013; 4 days ago Operating system Windows XP and later,Mac OS X, Linux Platform Supported GPUs Typ…
Topological sort is an important application of DFS in directed acyclic graphs (DAG). For each edge (u, v) from node u to node v in the graph, u must appear before v in the topological sort. Topological sort has many interesting applications. One of…
Radix sort is another linear time sorting algorithm. It sorts (using another sorting subroutine) the numbers from their least significant digits to most significant digits. To guarantee the correctness of radix sort, the sorting subroutine must be st…
Recently I systematicall review some sorting algorithms, including insertion sort, bubble sort, merge sort and quick sort. I then implement them in C++. All the function takes in a vector<int>& type and directly operates on the input. To use th…
Counting sort is a linear time sorting algorithm. It is used when all the numbers fall in a fixed range. Then it counts the appearances of each number and simply rewrites the original array. For a nice introduction to counting sort, please refer to I…
Merge sort is a recursive sorting algorithm. If you don't understand recursion, I recommend finding a resource to learn it. In brief, recursion is the act of a function calling itself. Thus, merge sort is accomplished by the algorithm calling itself…
nsertion sort is another sorting algorithm that closely resembles how we might sort items in the physical world. We start at the second item in our collection and make the assumption that this item is a sorted list of length 1. We then compare all th…
Insertion sort is a very intuitive algorithm as humans use this pattern naturally when sorting cards in our hands. In this lesson, using TypeScript / Javascript, we’ll cover how to implement this algorithm, why this algorithm gets its name, and the c…
Insertion Sort - 插入排序 插入排序算法的 '时间复杂度' 是输入规模的二次函数, 深度抽象后表示为, n 的二次方. import time, random F = 0 alist = [] while F < 13: F += 1 alist.append(random.randrange(0,100)) j =1 print("List-O",alist) startT =time.time() while j < alist.__len__(): f…
几个比较常见的排序算法里头,这个我是比较生疏的一个,有一天突然被问了一个问题是,归并排序最大的特点是什么,我才想起这个算法来.下午又看不进书啦,就实现一下,记下来. 归并排序采取的是分治策略,就是先将数据不断地进行二分,然后分别排序子序列之后再不断地合并在一起. 归并排序与快排一样,时间复杂度是O(nlogn),是一个比较高效率的排序算法. vector<int> mergeSort(vector<int>& nums, int m, int n) { if (m == n…
Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3].... Example:(1) Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6]. (2) Given nums = [1, 3, 2, 2, 3, 1], one possible answer is [2, 3…
Sort a linked list in O(n log n) time using constant space complexity. /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *sort…
在做 Largest Number 这道题之前,我对 sort 方法的用法是非常自信的.我很清楚不传比较因子的排序会根据元素字典序(字符串的UNICODE码位点)来排,如果要根据大小排序,需要传入一个比较函数. 先来看这道题,给你一个数组,让你把数组元素拼接起来,求能拼得的最大的数.如果只有两个数字 a 和 b,如何拼?很明显比较 ab 和 ba 两个数的大小,所以这道题首先需要对数组做一次排序.刷刷写下如下代码: nums.sort(function(a, b) { return (b + '…
Given an integer array, sort it in ascending order. Use quick sort, merge sort, heap sort or any O(nlogn) algorithm. Example Given [3, 2, 1, 4, 5], return [1, 2, 3, 4, 5]. 快速排序是排序算法中比较重要一种,也是经常容易考的一种排序算法,务必要掌握好.快排的优点是其平均时间复杂度为O(nlgn),这样在给大数据集排序的时候,…
Problem: Sort a linked list using insertion sort. The node of the linked list is defined as: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ The insertion sor…