Data Structures and Algorithm

插入排序 Insertion Sort 从新元素开始,从后向前扫描直到扫描到的元素小于等于新元素 则将新元素插入扫描到的元素前 代码实现 #include <stdio.h> #include <stdlib.h> int main(void) { int arr[8] = {5,6,1,7,5,3,1,4}; for (int i = 1; i < 8;i++) {//从第二位开始遍历数组 int j = i -1; int cur = arr[i];//储存当前数字 while (j >= 0 && arr[j] >= cur) {//向前遍历 arr[j+1] = arr[j];//将前面的数字向后移动一位 j--;...

时间空间复杂度 如何判断一个算法的好坏? 我们需要一种复杂度计算方式,不受计算机性能和程序数据的影响 时间复杂度 BigO BigO计算表示一个算法的渐进时间复杂度 T(n) = O(f(n)) f(n) 表示代码执行次数之和,O表示正比例关系 复杂度越低代码效率越高 e.g. 1 for (int i = 1; i <= n; i++) { x++; } 首先int i = 1为一次运算 其次,每次循环中会分别执行i <= n、i++、x++三次运算 则n次循环下会执行3n次 总共运算1+3n次,那么这个算法复杂度则为O(n) 因为BigO用于表示计算的增长变化趋势,所以当n无限大时,常数1和系数3可忽略不计 e.g. 2...

数据结构与算法 数据结构是程序储存信息的基本单位,数组就是常见的数据结构。而算法则是实现特定任务的计算步骤,比如排序算法和搜索算法的目的顾名思义就是排序和搜索。 但数据结构和算法不一定像数组和二分查找这个例子这样是完全分开的单独内容。数组是最简单的数据结构,而很多其他复杂的数据结构往往又集成了很多的算法在其中。 所以可以这样理解 程序 = 数据结构 + 算法 数据结构 官方定义 数据结构是计算机存储、组织数据的方式 但是在很多情况中,数据结构不仅包含数据本身,还会包含一些算法 算法 官方定义 算法是一系列规定的计算步骤,为了实现特定的计算目的