The HTML Handbook
0 码力 | 74 页 | 901.54 KB | 2 年前3
Google XML Document Format Style Guide Version 1.00 码力 | 13 页 | 51.99 KB | 2 年前3
turnjs 4 API DOCUMENTATION0 码力 | 27 页 | 174.15 KB | 2 年前3
KiCad 4.0 Pl Editor0 码力 | 35 页 | 495.36 KB | 2 年前3
Hello 算法 1.1.0 Python版# 外循环:未排序区间为 [0, i] for i in range(len(nums) - 1, 0, -1): # 内循环:将未排序区间 [0, i] 中的最大元素交换至该区间的最右端 for j in range(i): if nums[j] > nums[j + 1]: # 交换 nums[j] = nums[j + 1] nums[j + 1] = tmp count += 3 # 元素交换包含 3 个单元操作 return count ### 4. 指数阶 $ O(2^{n}) $ 生物学的“细胞分裂”是指数阶增长的典型例子:初始状态为1个细胞,分裂一轮后变为2个 主流排序算法的时间复杂度通常为 $ O(n\log n) $ ,例如快速排序、归并排序、堆排序等。 ### 7. 阶乘阶 $ O(n!) $ 阶乘阶对应数学上的“全排列”问题。给定 n 个互不重复的元素,求其所有可能的排列方案,方案数量为: $$ n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1 $$ 阶乘通常使用递归实现。如图 2-140 码力 | 364 页 | 18.42 MB | 2 年前3
Hello 算法 1.0.0b2 Swift版平方阶(冒泡排序) */ func bubbleSort(nums: inout [Int]) -> Int { var count = 0 // 计数器 // 外循环:待排序元素数量为 n-1, n-2, ..., 1 for i in stride(from: nums.count - 1, to: 0, by: -1) { // 内循环:冒泡操作 nums[j] = nums[j + 1] nums[j + 1] = tmp count += 3 // 元素交换包含 3 个单元操作 } } } return count } 指数阶 $ O(2^{n}) $  Figure 2-7. 线性对数阶的时间复杂度 ## 阶乘阶 $ O(n!) $ 阶乘阶对应数学上的「全排列」。即给定 n 个互不重复的元素,求其所有可能的排列方案,则方案数量为 $$ n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1 $$ 阶乘常使用递归实现。例如以下代码,第一层分裂出0 码力 | 199 页 | 15.72 MB | 2 年前3
Hello 算法 1.0.0b1 Swift版平方阶(冒泡排序) */ func bubbleSort(nums: inout [Int]) -> Int { var count = 0 // 计数器 // 外循环:待排序元素数量为 n-1, n-2, ..., 1 for i in sequence(first: nums.count - 1, next: { $0 > 0 + 1 ? $0 - 1 : nil nums[j] = nums[j + 1] nums[j + 1] = tmp count += 3 // 元素交换包含 3 个单元操作 } } } return count } 指数阶 $ O(2^{n}) $  Figure 2-7. 线性对数阶的时间复杂度 ## 阶乘阶 $ O(n!) $ 阶乘阶对应数学上的「全排列」。即给定 n 个互不重复的元素,求其所有可能的排列方案,则方案数量为 $$ n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1 $$ 阶乘常使用递归实现。例如以下代码,第一层分裂出0 码力 | 190 页 | 14.71 MB | 2 年前3
Hello 算法 1.0.0b1 JavaScript版time_complexity.js === /* 平方阶(冒泡排序) */ function bubbleSort(nums) { let count = 0; // 计数器 // 外循环:待排序元素数量为 n-1, n-2, ..., 1 for (let i = nums.length - 1; i > 0; i--) { // 内循环:冒泡操作 nums[j] = nums[j + 1]; nums[j + 1] = tmp; count += 3; // 元素交换包含 3 个单元操作 } } } return count; } ## 指数阶 $ O(2^{n}) $  Figure 2-7. 线性对数阶的时间复杂度 ## 阶乘阶 $ O(n!) $ 阶乘阶对应数学上的「全排列」。即给定 n 个互不重复的元素,求其所有可能的排列方案,则方案数量为 $$ n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1 $$ 阶乘常使用递归实现。例如以下代码,第一层分裂出0 码力 | 185 页 | 14.70 MB | 2 年前3
Hello 算法 1.0.0b2 Golang版time_complexity.go === /* 平方阶(冒泡排序) */ func bubbleSort(nums []int) int { count := 0 // 计数器 // 外循环:待排序元素数量为 n-1, n-2, ..., 1 for i := len(nums) - 1; i > 0; i-- { // 内循环:冒泡操作 for j := nums[j] nums[j] = nums[j+1] nums[j+1] = tmp count += 3 // 元素交换包含 3 个单元操作 } } } return count } ## 指数阶 $ O(2^{n}) $  Figure 2-7. 线性对数阶的时间复杂度 ## 阶乘阶 $ O(n!) $ 阶乘阶对应数学上的「全排列」。即给定 n 个互不重复的元素,求其所有可能的排列方案,则方案数量为 $$ n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1 $$ 阶乘常使用递归实现。例如以下代码,第一层分裂出0 码力 | 202 页 | 15.73 MB | 2 年前3
Hello 算法 1.0.0b2 Java版time_complexity.java === /* 平方阶(冒泡排序) */ int bubbleSort(int[] nums) { int count = 0; // 计数器 // 外循环:待排序元素数量为 n-1, n-2, ..., 1 for (int i = nums.length - 1; i > 0; i--) { // 内循环:冒泡操作 nums[j] = nums[j + 1]; nums[j + 1] = tmp; count += 3; // 元素交换包含 3 个单元操作 } } } return count; } ## 指数阶 $ O(2^{n}) $  Figure 2-7. 线性对数阶的时间复杂度 ## 阶乘阶 $ O(n!) $ 阶乘阶对应数学上的「全排列」。即给定 n 个互不重复的元素,求其所有可能的排列方案,则方案数量为 $$ n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1 $$ 阶乘常使用递归实现。例如以下代码,第一层分裂出0 码力 | 197 页 | 15.72 MB | 2 年前3
共 677 条
- 1
- 2
- 3
- 4
- 5
- 6
- 68













