创建个人论坛网站时需要哪些证件和WordPress完美主题模板?
摘要:个人做论坛网站要什么证件,wordpress完美主题模板,网站开发项目标书,网站建设 还有需求吗文章目录 时间复杂度的定义时间复杂度的分类时间复杂度分析常见数据结构和算法的时间复杂度常见数据结构常见算法 常见排序算法说明冒泡排序(Bubbl
个人做论坛网站要什么证件,wordpress完美主题模板,网站开发项目标书,网站建设 还有需求吗文章目录 时间复杂度的定义时间复杂度的分类时间复杂度分析常见数据结构和算法的时间复杂度常见数据结构常见算法 常见排序算法说明冒泡排序(Bubble Sort)快速排序(Quick Sort)归并排序(Merge Sort)堆排序(Heap Sort) 时间复杂度的定义
时间复杂度就是一种用来描述算法在输入规… 文章目录 时间复杂度的定义时间复杂度的分类时间复杂度分析常见数据结构和算法的时间复杂度常见数据结构常见算法 常见排序算法说明冒泡排序(Bubble Sort)快速排序(Quick Sort)归并排序(Merge Sort)堆排序(Heap Sort) 时间复杂度的定义
时间复杂度就是一种用来描述算法在输入规模增长时所需执行时间的度量即描述算法运行时间随问题规模增加而增长的速度它是对算法执行时间的上界估计通常通过O符号表示。时间复杂度描述了算法的效率和执行速度可以用来对比不同算法的性能。
备注: 1.时间复杂度描述的是算法在最坏情况下的运行时间。这是因为最坏情况下的时间复杂度是对算法性能的上界估计能够保证算法在任何情况下都能在该时间范围内完成。 2.在实际的算法分析中通常还考虑最好情况和平均情况下的时间复杂度。最好情况是指在最理想的输入情况下的时间复杂度平均情况是对所有可能输入情况下的平均时间复杂度的估计。
时间复杂度的分类
时间复杂度粗略的分为两类: 多项式量级和非多项式量级 非多项式量级只有两个 O ( 2 n ) 和 O ( n ! ) O(2^n) 和 O(n!) O(2n)和O(n!)
非多项式量级算法的执行时间会随着输入规模的增加急剧增长是非常低效的算法。 多项式量级的复杂度常见的并不多从低阶到高阶有(越高阶的时间复杂度执行效率越低): O ( 1 ) O ( l o g n ) O ( n ) O ( n l o g n ) O ( n 2 ) O(1) O(logn) O(n) O(nlogn) O(n^2) O(1)O(logn)O(n)O(nlogn)O(n2)
对应的曲线图如下图所示:
时间复杂度分析
1.我们在分析一个算法、一段代码的时间复杂度的时候只需关注循环执行次数最多的那一段代码就可以了它就代表着这个算法的时间复杂度。 2.加法法则:多个算法顺序追加使用的时候总复杂度等于量级最大的那段代码的复杂度 3.乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
常见数据结构和算法的时间复杂度
常见数据结构
1.数组(Array)
索引访问: O(1)查找: O(n)插入/删除(末尾): O(1)插入/删除(中间或开头): O(n)
2.链表(Linked List)
访问: O(n)查找: O(n)插入/删除(在头部进行): O(1)插入/删除(在中间或末尾进行): O(1)(如果已知位置)O(n)(如果需要搜索位置)
3.栈(Stack)
插入/删除(在顶部): O(1)访问,查找: O(n)
4.队列(Queue)
插入/删除(在头部或尾部进行): O(1)访问: O(n)
5.哈希表(Hash Table):
插入/删除/访问(平均情况): O(1)最坏情况下可能是O(n)取决于哈希冲突的数量
常见算法
1.线性搜索
时间复杂度:O(n)
2.二分查找
时间复杂度:O(logn)
3.冒泡排序
平均情况和最坏情况: O(n^2)
4.快速排序(Quick Sort)
平均情况: O(nlogn)最坏情况: O(n^2)
5.归并排序(Merge Sort)
最好情况、平均情况和最坏情况: O(nlogn)
6.堆排序(Heap Sort)
平均情况和最坏情况: O(nlogn)
常见排序算法说明
注: 排序算法的稳定性是指在排序过程中具有相等键值的元素在排序后的结果中相对顺序保持不变的性质。稳定性是排序算法中一个重要的性质因为在某些应用场景中我们希望保持相等元素的相对顺序不变。稳定性的好处是可以确保排序算法在特定情况下的正确性特别是在应对某些有依赖顺序的问题时。但是并不是所有的排序算法都是稳定的一些排序算法可能会改变具有相等键值的元素的相对顺序。因此在选择排序算法时需要根据具体的应用场景考虑排序算法的稳定性需求。
冒泡排序(Bubble Sort)
原理: 冒泡排序通过多次遍历数组比较相邻元素的大小并交换位置直到排序完毕。每一次遍历都会将最大的元素冒泡到末尾。 特点: 冒泡排序是一种比较简单的排序算法实现起来容易理解但效率较低。它的时间复杂度为O(n^2)适用于小规模的数据排序。
