算法
禽兽先生不禽兽
喜欢做一些技术性的工作,愿意虚心向别人请教,走在自己的技术开发之路上,让自己每天都有进步,才会让自己具备更大的价值
展开
-
排序算法之计数排序
原文:微信公众号:程序员小灰——什么是计数排序1 计数排序计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的...原创 2018-10-22 09:59:59 · 315 阅读 · 0 评论 -
排序算法之桶排序
原文:微信公众号:程序员小灰——什么是桶排序1 桶排序桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。2 原理根据最大值最小值创建多个桶,确定各个桶之间的跨度,然后遍历原始数列,把各元素放到对应的桶中,先是每个桶内的元素各自排序,然后遍历输出...原创 2018-10-24 20:49:29 · 1051 阅读 · 0 评论 -
排序算法之冒泡排序
原文:微信公众号:程序员小灰——什么是冒泡排序1 冒泡排序冒泡排序是一种基于比较的简单的算法,这种算法越大的元素会越来越靠近数列的顶端,就像汽水里面的气泡一样往上冒,因此得名为冒泡排序。2 原理首先遍历数组,比较相邻两个元素的大小,如果第一个元素比第二个元素要大则交换两个元素的位置,这样遍历完一轮后最大的元素就到了末尾。重复上面的步骤,只不过因为上一轮遍历后上一轮中最大的元素已经到...原创 2018-10-29 23:08:25 · 341 阅读 · 0 评论 -
排序算法之鸡尾酒排序
原文:微信公众号:程序员小灰——什么是鸡尾酒排序1 鸡尾酒排序鸡尾酒排序是冒泡排序的一种变形。它与冒泡排序的不同之处在于排序时是以双向在序列中进行排序。2 原理鸡尾酒排序的原理跟冒泡排序差不多,只不过冒泡排序每一轮的比较都是从左至右依次比较,而鸡尾酒排序则是一轮从左至右比较,下一轮从右至左比较。假如有一个这样的数组:{2, 3, 4, 5, 6, 7, 8, 1},如果按照冒泡...原创 2018-10-31 09:00:54 · 4504 阅读 · 4 评论 -
有趣的算法题之移除 k 位数字后使剩下的数字最小
原文:微信公众号:程序员小灰——删去k个数字后的最小值1 题目给定一个整数,从该整数中去掉 k 个数字,使剩下的数字组成的新整数尽可能小,那么应该选择去掉的数字。2 思路感觉这是个挺有意思的问题,所以当时认真的读了读也认真的想了想,真是不想不知道,一想才发现算法真的分优劣。首先这个题目是什么意思呢?一个数字移除 1 位后肯定会变小,问题是变小多少,最简单直接的方法是移除掉最后一位,...原创 2018-11-27 20:52:13 · 3199 阅读 · 1 评论 -
有趣的算法题之如何实现大整数相加
原文:微信公众号:程序员小灰——如何实现大整数相加?(修订版)1 题目两个很大很大的整数,如何求出它们的和?2 思路我们平时在程序中求和就是直接定义两个 int (-2 的 31 次方到 2 的 31 次方 -1)类型的数,稍大一点的数用 long (-2 的 63 次方到 2 的 63 次方 -1)类型,基本都能满足平时的需求,那如果需要求两个超过 long 范围的整数的和,那么...原创 2018-12-05 20:07:08 · 482 阅读 · 0 评论