算法
文章平均质量分 74
YoungJ5788
这个作者很懒,什么都没留下…
展开
-
二进制十进制转换史上最牛逼算法!!
十进制转二进制相信学过计算机的同学一定对二进制不陌生,计算机底层的通讯就是二进制嘛!二进制由0和1组成,那么怎么快速的对一个十进制数转换成二进制数呢?最古老的方法大家还记得怎么转换吗?比如35这个十进制数?将这个数除以2,等于17余1,然后将17再除以2,等于8余1…直到不能再被2整除,然后将余数从后往前的顺序写出来就是二进制数100011。这个是我们上初中时候老师教的,但是太麻烦了,下面我教大家一种新的算法:学习这个新算法的时候我们首先要了解下2n2^n2n问题:…282^828、272^7原创 2020-07-27 11:34:05 · 21757 阅读 · 11 评论 -
算法之希尔排序
希尔排序插入排序的改进,定义一个增量gap,从第1个元素开始,每次增加gap个,然后用插入排序对这几个值排好序,下次我缩小gap,再对新的值排好序,直到gap=1,再用插入排序排好序。public class ShellSort { public static void main(String[] args) { int[] arr = {9, 6, 1, 3, 5, 2, 4, 7, 8}; sort(arr); } public stat原创 2020-07-06 09:07:36 · 183 阅读 · 0 评论 -
算法之插入排序
插入排序从数组的第二个位置开始依次拿出一个值与前一个值比较,如果比前面的小,就和它交换位置。public class InsertionSort { public static void main(String[] args) {// int[] arr = {9, 6, 1, 3, 5}; int[] arr = {1, 2, 3, 4, 5}; sort(arr); } public static void sort(in原创 2020-07-06 09:06:47 · 136 阅读 · 0 评论 -
算法之冒泡排序
冒泡排序思路:我想把9移动到最后面的位置,通过两两判断,如果前面的元素>后面的元素,交换两个值,循环8次才能放到最后。public static void main(String[] args) { int[] arr = {5, 9, 7, 1, 3, 8, 2, 6, 4}; for (int j = 0; j < 8; j++) { if (arr[j] > arr[j+1]) { swap原创 2020-07-06 09:05:43 · 143 阅读 · 0 评论 -
算法之选择排序
常见的排序中文名称英文名称平均时间复杂度最差时间复杂度最好时间复杂度空间复杂度稳定性选择排序Selectionn2n^2n2n2n^2n2n2n^2n21不稳冒泡排序Bubblen2n^2n2n2n^2n2nnn1稳插入排序Insertionn2n^2n2n2n^2n2nnn1稳堆排序heapnlog2nnlog_2^nnlog2nnlog2nnlog_2^nnlog2nnlog2nnlog2^nnlog2n原创 2020-07-06 09:04:52 · 152 阅读 · 0 评论 -
数据结构与算法之基础概念
数据结构与算法之基础概念前言:算法是一个程序员必备的内力,国外的大厂面试90%的题都是考算法,他们是非常重视算法基础的,他们认为任何一门编程语言花不了多长时间就能上手,所以他们最主要的就是考验程序员的内力(算法基础、逻辑基础、数学基础)。国内的BATJ也非常重视算法基础,如果你想进大厂,那么你必学算法。什么是数据结构?Data Structure,存储数据的不同方式。比如说,有10个int型的整数,你可以每个整数一个小格,并排的挨在一起,这种叫数组;你也可以每个小格除了存自己之外还存指向下一个原创 2020-07-06 09:02:54 · 133 阅读 · 0 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = new HashMap<>(); /** * 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法 */ /** * 分析: * 当n=1时,只有1种跳法(1); * 当n=2时,有2种跳法(1原创 2020-05-26 09:12:17 · 2706 阅读 · 0 评论