![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
00后程序员kkl
奋斗的少年
展开
-
母牛生小牛问题-字节跳动笔试题
题目母牛从3-7岁初每年会生产1头母牛,10岁后死亡(10岁仍然存活)。假设初始有1头刚出生的母牛,请问第n年有多少头母牛?(年从第一年开始计数)注:第3年初会出生第一头牛,故第3年有两头母牛第5年初第3年出生的牛会生产,故第五年有5头母牛。题解(暴力算法)主类 public static void main(String[] args) { for(int i =...原创 2019-04-28 11:02:04 · 15024 阅读 · 1 评论 -
冒泡排序
/** * @deprecated 冒泡排序 * @param arr 待排序的数组 * @return int[] */ public static int[] execute(int[] arr){ int len; if(arr == null || (len = arr.length) == 0 || ...原创 2019-08-08 22:29:06 · 105 阅读 · 0 评论 -
堆排序
前言堆是一个完全二叉树,一层结点满了再把结点添加到下一层,每一层结点的添加顺序是从左到右。父结点大于或者等于它的任意一个子结点Heap实现/** * @version 1.0 * @anthor zsl on 2019/8/8 * @since jdk8 */public class Heap<E extends Comparable<E>> { ...原创 2019-08-08 22:16:42 · 101 阅读 · 0 评论 -
快速排序
public static void execute(int[] arr,int left,int right){ // 当left大于或者等于right的时候退出递归 if(left < right){ int point = getPoint(arr,left,right); execute(arr,le...原创 2019-08-08 20:29:21 · 166 阅读 · 0 评论 -
归并排序
public static void execute(int[] arr){ // 当数组的长度小于等于1时就停止拆分 if(arr.length > 1){ /*左递归*/ int len = arr.length; int leftLen = len/2; ...原创 2019-08-08 16:47:44 · 84 阅读 · 0 评论 -
插入排序
public static int[] execute(int[] arr){ if(arr == null || arr.length == 0 || arr.length == 1){ return arr; } int len = arr.length; // 执行n-1趟 for(...原创 2019-08-08 11:14:06 · 102 阅读 · 0 评论 -
选择排序
public static int[] execute(int[] arr){ int len = arr.length; // 需要执行n-1趟 for(int i = 0; i < len-1;i++){ // 假定i是此趟最小元素下标 int minIndex = i; ...原创 2019-08-08 10:24:44 · 110 阅读 · 0 评论 -
各种排序的时间复杂度、空间复杂度、稳定性
文章目录1 冒泡排序2 选择排序3 插入排序4 归并排序5 快速排序6 堆排序7 桶排序8 基数排序9 外部排序1 冒泡排序时间复杂度:O(n*n)稳定性:稳定空间复杂度:O(1)2 选择排序时间复杂度:O(n*n)稳定性:不稳定空间复杂度:O(1)3 插入排序时间复杂度:O(n*n)稳定性:稳定空间复杂度:O(1)4 归并排序时间复杂度:O(nlogn)稳定性:稳定...原创 2019-07-21 23:15:52 · 3246 阅读 · 0 评论 -
kmp
kmp详解及代码参考资料《大话数据结构》原创 2019-07-21 22:47:36 · 1871 阅读 · 0 评论 -
算法源码
1 kmp2 多模板字符串匹配-自动机3 Dijkstra-最短路径查找原创 2019-07-21 21:51:18 · 415 阅读 · 0 评论 -
字节跳动2019年笔试题
字节跳动的笔试题安排的时间是星期六早上10点开始,我十点多钟起床洗漱完后打开了考试地址,本来是想好好做下但是饥寒交迫记下了题目就吃饭早饭去了。接下来贴一下高清无法的图片。题目一:母牛生小牛问题题目二:麻将游戏题目三:特工题目四:最长全一区间...原创 2019-04-28 11:21:24 · 16941 阅读 · 0 评论 -
常用的算法技术
标题1 蛮力法2 减治法3 分治法4 动态规划5 贪婪法6 回溯法7 分子界限法1 蛮力法定义:是一种简单直接解决问题的方法。例子:选择排序冒泡排序顺序查找蛮力字符串匹配最近对问题凸包问题旅行商问题背包问题分配问题深度优先查找广度优先查找2 减治法定义:将大问题转化成相同问题的小问题求解,大问题再根据小问题的解来求解。该方法有时也称为增量法。两种实现:自顶...原创 2019-08-09 12:14:14 · 1377 阅读 · 0 评论