随笔分类 -  【每日算法】

摘要:1)算法简介 桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。 桶排序是稳定的,且在大多数情况下常见排序里最快的一种,比快排还要快,缺点是非常耗空间,基本上是 阅读全文
posted @ 2017-04-02 23:36 少东主 阅读(1000) 评论(0) 推荐(0)
摘要:1)算法简介 基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Ma 阅读全文
posted @ 2017-04-02 23:28 少东主 阅读(1013) 评论(0) 推荐(0)
摘要:1)算法简介 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。它只能对整数进行排序。 2)算法描述和分析 算法的步骤如下: 1、找出待排序的数组中最大和最小的元素 阅读全文
posted @ 2017-04-02 23:24 少东主 阅读(502) 评论(0) 推荐(0)
摘要:1)算法简介 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2 路 阅读全文
posted @ 2017-04-02 23:19 少东主 阅读(445) 评论(0) 推荐(0)
摘要:恩,重头戏开始了,快速排序是各种笔试面试最爱考的排序算法之一,且排序思想在很多算法题里面被广泛使用。是需要重点掌握的排序算法。 1)算法简介 快速排序是由东尼·霍尔所发展的一种排序算法。其基本思想是基本思想是,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则 阅读全文
posted @ 2017-04-02 23:04 少东主 阅读(3183) 评论(1) 推荐(0)
摘要:1)算法简介 鸡尾酒排序等于是冒泡排序的轻微变形。不同的地方在于从低到高然后从高到低,而冒泡排序则仅从低到高去比较序列里的每个元素。他可以得到比冒泡排序稍微好一点的效能,原因是冒泡排序只从一个方向进行比对(由低到高),每次循环只移动一个项目。 2)算法描述和分析 1、依次比较相邻的两个数,将小数放在 阅读全文
posted @ 2017-04-02 22:53 少东主 阅读(387) 评论(0) 推荐(0)
摘要:1)算法简介 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有元素需要再交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 2)算法描述 1. 比较相 阅读全文
posted @ 2017-04-02 22:49 少东主 阅读(639) 评论(0) 推荐(0)
摘要:不得不说,堆排序太容易出现了,选择填空问答算法大题都会出现。建堆的过程,堆调整的过程,这些过程的时间复杂度,空间复杂度,以及如何应用在海量数据Top K问题中等等,都是需要重点掌握的。 1)算法简介 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构 阅读全文
posted @ 2017-04-02 22:44 少东主 阅读(357) 评论(0) 推荐(0)
摘要:1)算法简介 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置; 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。 2)算法描述和分析 阅读全文
posted @ 2017-03-28 23:51 少东主 阅读(3348) 评论(0) 推荐(0)
摘要:1)算法简介 希尔排序,也称递减增量排序算法,因DL.Shell于1959年提出而得名,是插入排序的一种高速而稳定的改进版本。 2)算法描述 1、先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。 2、所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序。 3、取第 阅读全文
posted @ 2017-03-25 20:55 少东主 阅读(447) 评论(0) 推荐(0)
摘要:1)算法简介 二分(折半)插入(Binary insert sort)排序是一种在直接插入排序算法上进行小改动的排序算法。其与直接排序算法最大的区别在于查找插入位置时使用的是二分查找的方式,在速度上有一定提升。 2)算法描述和分析 一般来说,插入排序都采用in place在数组上实现。具体算法描述如 阅读全文
posted @ 2017-03-24 23:33 少东主 阅读(1586) 评论(0) 推荐(0)
摘要:插入排序 1)算法简介 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描 阅读全文
posted @ 2017-03-23 23:46 少东主 阅读(249) 评论(0) 推荐(0)
摘要:1.插入排序 直接插入排序 二分插入排序 希尔排序 2.选择排序 直接选择排序 堆排序 3.交换排序 冒泡排序 鸡尾酒排序 快速排序 4.归并排序 5.计数排序 6.基数排序 7.桶排序 参考 "12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用" 阅读全文
posted @ 2017-03-22 22:00 少东主 阅读(143) 评论(0) 推荐(0)