随笔分类 - 数据结构与算法
摘要:各排序算法指标对比 排序方法 平均时间复杂度 最好时间复杂度 最坏时间复杂度 空间复杂度 稳定性 冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定 简单选择排序 O(n^2) O(n^2) O(n^2) O(1) 稳定 直接插入排序 O(n^2) O(n) O(n^2) O(1) 稳定
阅读全文
摘要:特点 1、n个元素的待排序列两两元素合并,形成n/2个无序子序列。无序子序列内部分别进行排序,形成有序子序列。 n/2个有序子序列两两合并,形成n/4个无序子序列。无序子序列内部分别进行排序,形成有序子序列。 n/4个有序子序列两两合并,形成n/8个无序子序列。无序子序列内部分别进行排序,形成有序子
阅读全文
摘要:排序思路 待排数组:arr[13]={9,3,13,1,7,5,8,6,2,12,11,10,4} 排后数组:newArr[13]=? 第一轮:定义增量值d,通常首先设定d=arr.length/3+1 d = 13/3 + 1 = 5 从i=5+1=6的位置开始循环,依次对比 i 和 i-5 两个
阅读全文
摘要:排序思路 待排数组:arr[13]={9,3,13,1,7,5,8,6,2,12,11,10,4} 排后数组:newArr[13]=? 第一轮:定义增量值d,通常首先设定d=arr.length/3+1 d = 13/3 + 1 = 5 从i=5+1=6的位置开始循环,依次对比 i 和 i-5 两个
阅读全文
摘要:排序分析 待排数组:arr[9]={9,3,4,1,7,5,8,6,2} 排后数组:newArr[9]=? 第一轮:从arr取出第一个元素放入newArr中,arr减去该元素。 结果:arr={3,4,1,7,5,8,6,2} 、newArr={9} 第二轮:从arr取出第一个元素依次与newArr
阅读全文
摘要:排序分析 待排数组:arr[9]={9,3,4,1,7,5,8,6,2} 排后数组:newArr[9]=? 第一轮:算出newArr[0]该放哪个元素。从arr最后一个元素开始,依次往前两两对比,谁小谁排前面,到arr[0]时停止。 结果:arr={1,9,3,4,2,7,5,8,6} 、newAr
阅读全文
摘要:排序分析 待排数组:arr[9]={9,3,4,1,7,5,8,6,2} 排后数组:newArr[9]=? 第一轮:算出newArr[0]该放哪个元素。把arr某个元素放到newArr[0],arr减去该元素。arr剩下元素依次与newArr[0]对比,谁小谁排newArr[0]。 结果:arr={
阅读全文
摘要:逻辑分析 二分法查找,又叫折半查找法。 前提:待查序列必须为线性有序表。 步骤: 每次取待查序列的中间值与目标值对比,结果如下: 如果中间值小于目标值,则说明目标值在大的半区,继续取大半区的中间值与目标值对比。 如果中间值大于目标值,则说明目标值在小的半区,继续取小半区的中间值与目标值对比。 时间复
阅读全文
摘要:待排序无序数组 a[10]={34,2,77,23,1,5,7,9,11,44} (第一轮) 第一步:设左边第一个元素34为基准元素base,拿出来放在一边,这样34的位置就空了出来 第二步:从最右边开始向左一个个地和base比较,当找到比base小的元素11,就把它放到34空出来的位置上,这样11
阅读全文

浙公网安备 33010602011771号