随笔分类 - 算法
摘要:补码、负数和减法 计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行。 用补数代替原数,可把减法转变为加法。出现的进位就是模,此时的进位,就应该忽略不计。 二进制下,有多少位数参加运算,模就是在 1 的后面加上多少个 0。 补码就是按照这个要求来定义的:正数不变,负数即用模减去绝对
阅读全文
摘要:"冒泡排序" 冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经
阅读全文
摘要:资料 "【英语中字】[BBC纪录片]现代生活的秘密规则: 算法 (2015)" “算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。”看过了维基百科的解释,你是不是依旧云里雾里,今天给大家推荐的是15年BBC的纪录片。
阅读全文
摘要:桶排序 (Bucket sort)或所谓的箱排序的原理是将数组分到有限数量的桶子里,然后对每个桶子再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),最后将各个桶中的数据有序的合并起来。 排序过程: + 假设待排序的一组数统一的分布在一个范围中,并将这一范围划分成几个子范围,
阅读全文
摘要:我的程序会运行多长时间?为什么我的程序耗尽了所有内存? "时间复杂度" 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。 这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦
阅读全文