算法
文章平均质量分 92
程序员囧辉
微信搜索【程序员囧辉】,领取本人原创大厂高频面试题 PDF、简历模板、进学习交流群。对技术有极致的追求,致力于写出小白也能看得懂的文章。
展开
-
排序算法:冒泡排序
前言对于Java程序员来说,一般对于算法没有什么要求,但是有一个算法除外——排序算法。排序算法不仅在日常开发中经常用到,还是面试中几乎必问的题目,并且通常是以“手写代码”的形式出现,因此掌握好排序算法是对每一个程序员的最基本要求。谈到排序算法,第一个浮现在我们脑中的一定是“冒泡排序”。“冒泡排序”由于较简单的过程,得到大多数程序员的“厚爱”,本文将简单的介绍排序算法的整个过程。...原创 2018-04-05 00:45:55 · 6471 阅读 · 1 评论 -
排序算法:插入排序
前言上一次,我们介绍了排序算法中“龟速三兄弟”的大哥“冒泡排序”。今天,我们继续介绍“龟速三兄弟”中的二哥——“插入排序”。“冒泡排序”的过程和代码相信大多数人都比较熟悉,但是“插入排序”就不见得了。由于同样是“龟速三兄弟”中的一员,但是处理过程没有“冒泡排序”那么简单明了,因此有不少人可能都没接触过“插入排序”,本文将通过例子来介绍“插入排序”的完整过程。基本思想将一个数插入一...原创 2018-04-06 18:09:58 · 3554 阅读 · 1 评论 -
排序算法:选择排序
前言上一次,我们介绍了排序算法中“龟速三兄弟”的二哥“插入排序”。今天,我们继续介绍“龟速三兄弟”中的小弟——“选择排序”。和二哥“插入排序”一样,由于同样是“龟速三兄弟”中的一员,但是处理过程没有大哥“冒泡排序”那么简单明了,因此有不少人可能都没接触过“选择排序”,本文将通过例子来介绍“选择排序”的完整过程。基本思想每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始...原创 2018-04-12 23:04:49 · 3146 阅读 · 0 评论 -
排序算法:快速排序
概述手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官眼前一亮。本文将介绍常见的排序算法中的“快速排序”。基本思想快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:从要排序的数据中取一个数为“基准数”。 通过一趟排序将要排序的数据...原创 2018-04-24 22:02:57 · 53050 阅读 · 22 评论 -
位图法:判断一个数是否在40亿个整数中?
题目最近看到一个题目:给40亿个不重复的 unsigned int 的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?解法搜了一下资料,该题目是腾讯的一道面试题,目前网上普遍给出的答案有两种。1.《编程珠玑》给出的方案我们把40亿个数中的每一个用32位的二进制来表示,假设这40亿个数开始放在一个文件中。然后将这40亿个数分成两类:1.最高位...原创 2019-01-26 15:28:10 · 14090 阅读 · 11 评论 -
排序算法:归并排序
前言这篇文章本该发表于2018年4月份末,在排序算法:快速排序之后,但是不知道什么原因,这篇文章忘了在CSDN上发表,今天在看博客的时候突然发现,因此补上。概述之前介绍过排序算法中效率很高的“快速排序”。本文将介绍另一个高效的排序算法——“归并排序”。基本思想归并排序的主要思想是分治法。主要过程是: 将n个元素从中间切开,分成两部分。(左边可能比右边多1个...原创 2019-06-07 13:48:13 · 2907 阅读 · 1 评论