algorithm
wolfrevoda
新晋机器学习研究爱好者
展开
-
排序算法总结
排序算法总结选择排序算法描述首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置。然后,再在剩下的元素中找到最小元素与数组中第二个位置上的元素交换位置。如此反复,直到整个数组有序为止。这种方法被称作选择排序,因为该算法在不断的选择剩余元素中的最小者代码public void selectSort(T [] sortedData){ for原创 2015-11-16 20:54:51 · 617 阅读 · 0 评论 -
排序性能总结
稳定性: 稳定的排序算法:插入排序、冒泡排序、归并排序、二叉树排序、计数排序、同排序不稳定的排序算法:选择排序、快速排序、堆排序、希尔排序、基数排序时间复杂度: 最坏时间复杂度为O(n2)O(n^2)的有:插入排序、选择排序最坏时间复杂度为O(nlogn)O(n\log n)的有:希尔排序、快速排序、三向快速排序、归并排序和堆排序空间复杂度: 空间复杂度为O(1)O(1)的有:选择排序原创 2016-08-09 11:06:07 · 613 阅读 · 0 评论 -
打印1到最大的n位数
题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3、…、999题目分析:对于该题目,打眼一看似乎很简单,但是详细观察后会发现在题目中并没有对输入的数字n有任何的限制,因此此时可能会遇到大数问题,即我们要输出的n位数远远超出了int或long甚至long long所能表示的范围,那么这时候我们该怎么办,下面介绍两种方法:利用字符串来表示一个数字,字符串中的每个原创 2016-07-27 00:44:15 · 811 阅读 · 0 评论 -
大数据处理算法一:Bitmap算法(转)
源地址Bitmap算法腾讯面试题:给20亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中并且所耗内存尽可能的少?解析:bitmap算法就好办多了所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用转载 2016-07-26 15:20:33 · 806 阅读 · 0 评论 -
圈中最后剩下的数字(转)
源地址题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:本题就是有名的约瑟夫环问题。既然题目有一个数字圆圈,很自然的想法是我们用一个数据结构来模拟这个圆圈。在常用的数据结构中,我们很容易想到用环形列表。转载 2016-07-13 11:40:42 · 432 阅读 · 0 评论 -
LeetCode OJ --- Regular Expression Matching
题目描述Implement regular expression matching with support for ‘.’ and ‘*’.‘.’ Matches any single character. ‘*’ Matches zero or more of the preceding element.The matching should cover the entire input st原创 2016-03-22 12:10:46 · 387 阅读 · 0 评论 -
LeetCode OJ ----Add Two Numbers
题目描述You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a l原创 2016-02-25 14:36:26 · 601 阅读 · 0 评论 -
LeetCode OJ ---- Reverse Integer
Reverse Integer题目描述:Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321code(c++):法一:int reverse(int x) { int max = (numeric_limits<int>::max)();原创 2016-03-08 23:09:45 · 332 阅读 · 0 评论 -
LeetCode OJ ----Two Sum
LeetCode OJ(1) —Two Sum题目描述Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add原创 2016-02-23 23:18:13 · 511 阅读 · 0 评论 -
LeetCode OJ ---- Longest Palindromic Substring
题目描述Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.code(c++)class Solution原创 2016-03-04 18:19:28 · 329 阅读 · 0 评论 -
LeetCode OJ ---- Longest Substring Without Repeating Characters
题目描述Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. F原创 2016-03-01 17:06:00 · 342 阅读 · 0 评论 -
LCS(Longest Common Sequence)最长公共子序列算法
LCS(Longest Common Sequence)最长公共子序列算法最长公共子序列就是在两个字符串中找出相同且最长的子序列,其中该子序列并不要求是连续的。假设我们拥有两个序列S1S_1和S2S_2,其中序列S1S_1的长度为m, S2S_2的长度为n,那么我们知道这两个序列的最长公共子序列长度可以分两种情况来探讨,当S1[m−1]==S2[n−1]S_1[m - 1] == S_2[n -原创 2016-08-22 10:14:57 · 1388 阅读 · 0 评论