漫画:什么是冒泡排序

转载自   漫画:什么是冒泡排序 什么是冒泡排序? 冒泡排序的英文Bubble Sort,是一种最基础的交换排序。 大家一定都喝过汽水,汽水中常常有许多小小的气泡,哗啦哗啦飘到上面来。这是因为组成小气泡的二氧化碳比水要轻,所以小气泡可以一点一点向上浮动。   而我们的冒泡排序之所以叫做冒...

2018-07-23 20:34:11

阅读数:38

评论数:0

Java最小堆解决TopK问题

转载自  Java最小堆解决TopK问题TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。TopK问题是个很常见的问题:例如学校要从全校学生中找到成绩最高的500名学生,再例如某搜索引擎要统计每天的100条搜索次数最多的关键词。对于这个问题,解决方法有很多:方法一:对源数据中所有...

2018-06-18 07:25:22

阅读数:42

评论数:0

我猜,每个程序员对着电梯都想过调度算法吧

转载自 我猜,每个程序员对着电梯都想过调度算法吧传统电梯调度算法1.1 先来先服务算法(FCFS)先来先服务(FCFS-First Come First Serve)算法,是一种随即服务算法,它不仅仅没有对寻找楼层进行优化,也没有实时性的特征,它是一种最简单的电梯调度算法。它根据乘客请求乘坐电梯的...

2018-05-06 14:33:50

阅读数:141

评论数:0

递归算法介绍及Java应用实战

转载自 递归算法介绍及Java应用实战什么是递归算法递归算法是把问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或过程)来表示问题的解。一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数)。递归过程一般通过函数或子过程来实现。递归方法:在函数或子过程的内部,直...

2018-04-24 11:16:57

阅读数:36

评论数:0

Java单链表反转

转载自   Java单链表反转 详细过程(一)单链表的结点结构:       data域:存储数据元素信息的域称为数据域;     next域:存储直接后继位置的域称为指针域,它是存放结点的直接后继的地址(位置)的指针域(链域)。    data域+ next域:组成数据ai的存储映射,称为结点;...

2018-04-18 21:14:43

阅读数:26

评论数:0

漫画算法:辗转相除法是什么鬼

转载自  玻璃猫 程序员小灰 大四毕业前夕,计算机学院的小灰又一次顶着炎炎烈日, 去某IT公司面试研发工程师岗位…… 半小时后,公司会议室,面试开始…… 小灰奋笔疾书,五分钟后…… ...

2018-04-13 22:04:00

阅读数:24

评论数:0

漫画算法:找出缺失的整数

转载自 玻璃猫 程序员小灰小灰一边回忆一边讲述起当时面试的情景......题目:一个无序数组里有99个不重复正整数,范围从1到100,唯独缺少一个整数。如何找出这个缺失的整数?解法一:创建一个HashMap,以1到100为键,值都是0 。然后遍历整个数组,每读到一个整数,就找到HashMap当中对...

2018-04-13 21:55:36

阅读数:28

评论数:0

漫画算法:最小栈的实现

转载自 玻璃猫 程序员小灰                  小灰回忆起当时的情景……                  题目:实现一个栈,带有出栈(pop),入栈(push),取最小元素(getMin)三个方法。要保证这三个方法的时间复杂度都是O(1)...

2018-04-13 21:49:57

阅读数:29

评论数:0

漫画算法:判断2的乘方

转载自 玻璃猫 程序员小灰         小灰陷入回忆当中。。。。        题目:实现一个方法,判断一个正整数是否是2的乘方(比如16是2的4次方,返回True;18不是2的乘方,返回False)。要求性能尽可能高。      解法一:  创建一个中间...

2018-04-13 21:47:21

阅读数:29

评论数:0

漫画算法:无序数组排序后的最大相邻差值

转载自 玻璃猫 程序员小灰 小灰一边回忆一边讲述起当时面试的情景...... 题目:有一个无序整型数组,如何求出这个数组排序后的任意两个相邻元素的最大差值?要求时间和空间复杂度尽可能低。(例如:无序数组 2,3,1,4,6...

2018-04-13 21:43:49

阅读数:17

评论数:0

漫画:什么是动态规划?(整合版)

转载自 玻璃猫 程序员小灰 ———————————— 题目: 有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。 比如,每次走1级台阶,一共走10步,...

2018-04-13 14:05:56

阅读数:62

评论数:0

漫画算法:如何判断链表有环

转载自  玻璃猫 程序员小灰大四毕业前夕,计算机学院,正在四处求职的小灰碰到了同系的学霸大黄……小灰边说边回忆着上周去面试的情形……有一个单向链表,链表当中有可能出现“环”,就像下图这样。如何用程序判断出这个链表是有环链表?方法一:首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,...

2018-04-13 13:59:27

阅读数:43

评论数:0

算法九之基数排序

一、基数排序 (1)基数排序的简介   基数排序不同于其他的排序算法,它不是基于比较的算法。基数排序是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。它是一种稳定的排序算法。    通常用于对数的排序选择的是最低位优先法,即先对最次位关键字进行排序,再对高一位的关键字进行排序,以此类推。 ...

2017-11-26 17:58:15

阅读数:46

评论数:0

算法八之归并排序

一、归并排序原理   归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路...

2017-11-26 17:56:57

阅读数:48

评论数:0

算法七之希尔排序

一、希尔排序 (1)简介   希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。   希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量...

2017-11-26 17:56:55

阅读数:46

评论数:0

算法六之直接插入排序

一、直接插入排序基本思想 直接插入排序(straight insertion sort)的做法是:       每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。       第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫...

2017-11-26 17:56:21

阅读数:50

评论数:0

算法五之快速排序

一、快速排序(Quicksort)思想        设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说...

2017-11-26 17:56:16

阅读数:41

评论数:0

算法四之冒泡排序

一、冒泡排序(Bubble Sort)思想 (1)冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。     它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个...

2017-11-26 17:56:14

阅读数:46

评论数:0

算法三之堆排序

一、堆(Heap)定义 (1)n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):        k(i)        当然,这是小根堆,大根堆则换成>=号。 (2)k(i)相当于二叉树的非叶子结点,K(2i)则是左子节点,k(2i+1)是右...

2017-11-26 17:56:09

阅读数:38

评论数:0

算法二之树形选择排序

一、树形选择排序的基本思想 (1) 树形选择排序又称锦标赛排序(Tournament Sort),是一种按照锦标赛的思想进行选择排序的方法。首先对n个记录的关键字进行两两比较,然后在n/2个较小者之间再进行两两比较,如此重复,直至选出最小的记录为止。   (2) 树形选择排序(Tree Selec...

2017-11-26 17:56:06

阅读数:96

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭