算法设计与分析
icbcdjy
这个作者很懒,什么都没留下…
展开
-
1-7 n!的阶。
证明:n!=nn 证明:n!=n^n 证明:n!=nn 如果limn→+∞f(n)g(n)=0,那么f(n)=o(g(n)) 如果\lim_{n\rightarrow+\infty}\frac{f(n)}{g(n)}=0,那么f(n)=o(g(n)) 如果n→+∞limg(n)f(n)=0,那么f(n)=o(g(n)) ∵0≤n!nn=1n×2n×⋯×nn≤1n \because0\leq \frac{n!}{n^n}=\frac{1}{n}\times\frac{2}{n}\times\cdots\原创 2021-10-16 22:23:10 · 198 阅读 · 0 评论 -
2-8 O(1)空间子数组换位算法。
设a[0:n-1]是有n个元素的数组,k(O≤k≤n-1)是一个非负整数。试设计一个算法将子数组 a[0:k-1]与a[k:n-1]换位。要求:算法在最坏情况下耗时O(n),且只用到O(1)的辅助空间。 #include <iostream> using namespace std; // [begin, end) void reverse(int a[], int begin, int end) { while (begin < end) { swap原创 2021-10-14 23:18:45 · 505 阅读 · 0 评论 -
2-3 改写二分搜索算法。
请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。设a[0:n-1]是已排好序的数组。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 #include <iostream> using namespace std; void modifiedBinarySearch(int a[], int n, int x, int &i, int &j) { int left = 0; int right =原创 2021-10-14 21:53:56 · 1050 阅读 · 0 评论