随笔分类 -  算法学习笔记

摘要:快速排序 步骤:(升序) 可在排序前将数组打乱 设a[lo]为切分元素temp(temp=a[lo]),将数组分为三部分: 不大于切分元素的小数组A A小数组与B小数组间插入temp 不小于切分元素的小数组B 如何切分: 设立一个从左到右扫描的指针i直到找大于等于切分元素的元素,同时一个从右到左的扫 阅读全文
posted @ 2018-07-22 10:20 Stranger115 阅读(377) 评论(0) 推荐(0)
摘要:归并排序 MERGE-SORT 时间复杂度: 空间复杂度: 一、原地归并排序 步骤:将两个已有序数组组合到一个数组中并排好序。 二、自顶向下归并排序 步骤:运用递归的方法,将数组平均分为两部分,进行排序,再将前部分再分为两部分,进行排序....直到数组被分为n组两个元素比较排序 改进后的自顶向上归并 阅读全文
posted @ 2017-08-12 20:37 Stranger115 阅读(310) 评论(0) 推荐(0)
摘要:时间复杂度(Time Complexity): 一个算法中的语句执行次数称为语句频度或时间频度。记为T(n) 算法的基本操作重复执行的次数是模块n的某一个函数f(n) 空间复杂度(Space Complexity): 如当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O 阅读全文
posted @ 2017-08-12 17:21 Stranger115 阅读(358) 评论(0) 推荐(0)
摘要:二分查找算法: 在有序数组a中查找值b,从数组a的中间值a[mid ]开始查找,若b比a[ mid ]小,则从 [0,mid-1 ]区间重新开始上述操作,若b比a[ mid ]大,则从 [mid+1,length-1 ]区间重新开始上述操作直到找到b或找遍数组也无该值 数组必须有序,才可用二分查找: 阅读全文
posted @ 2017-07-24 09:52 Stranger115 阅读(341) 评论(0) 推荐(0)