随笔分类 - 数据结构和算法
摘要:数据结构:计算机存储、组织数据的方式。 数据结构下又分: 1.集合结构:数据结构中的元素之间除了"同属一个集合" 的相互关系外,别无其他关系; 2.线性结构:数据结构中的元素存在一对一的相互关系; 3.树形结构:数据结构中的元素存在一对多的相互关系; 4.图形结构:数据结构中的元素存在多对多的相互关
阅读全文
摘要:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其
阅读全文
摘要:快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 。 采用分治法,平均时间复杂度
阅读全文
摘要:选择排序算法,数组中的每个元素与第一个元素比较,找最值,每轮放置一个最值。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。时间复杂度O(n^2),交换次数O(n),最好情况是,已经有序,交换0次;最坏情况交换n-1次,逆序
阅读全文
摘要:冒泡排序算法就是相邻两两比较,每趟比较决定一个最值。 外循环重复n-1次,内循环重复n-1,n-2,。。。,1次 若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次比较,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录
阅读全文
摘要:插入排序算法是一个对少量元素进行排序的有效算法。插入排序的工作原理与打牌时整理手中的牌的做法类似,无论什么时候手中的牌都是排序好的。 第一次循环先取出索引对应的key值,再对当前key值前面的元素进行第二次遍历比较,符合交换情况,a[i+1]=a[i],将a[i]后移,i--,最后再将取出的key值
阅读全文
摘要:算法:解决问题使用的一种策略(其实就是策略),算法的优劣则要用空间复杂度与时间复杂度来衡量。算法分析其实就是统计所需的资源(花费时间,占用内存)。常见的如:递归法(调用自身;需有一个递归结束条件,称为递归出口。),穷举法(暴力破解法,逐个推算),迭代法(迭代法也称辗转法,是一种不断用变量的旧值递推新
阅读全文

浙公网安备 33010602011771号