分析Perm()函数功能、代码、时间复杂度
2018-04-01 13:34
330 查看
Perm()函数功能:
Perm函数的功能是将传递过来的数组的后size - N 位进行全排列,将排列的每一组数都输出。
代码实现:
输出:
时间复杂度:
时间复杂度为 : O(n!)
Perm函数是一个递归函数,它的作用是对数组的后size-N 位进行全排列,缺点是时间复杂度高。
Perm函数的功能是将传递过来的数组的后size - N 位进行全排列,将排列的每一组数都输出。
代码实现:
#include<iostream> #include<String> using namespace std; void Perm(int* array, int size, int N) //全排列 { if (N == size) { for (int i = 0; i < size; ++i) cout << array[i]; cout << " "; } else { for (int i = N; i < size; ++i) { swap(array[i], array ); Perm(array, size, N + 1); swap(array[i], array ); } } } int main() { int arr[5] = { 1, 2, 3, 4, 5 }; Perm(arr, 5, 3); return 0; }
输出:
时间复杂度:
时间复杂度为 : O(n!)
Perm函数是一个递归函数,它的作用是对数组的后size-N 位进行全排列,缺点是时间复杂度高。
相关文章推荐
- 设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。
- 函数传参、传引用、传指针时间复杂度分析
- 排序算法——希尔排序的图解、代码实现以及时间复杂度分析
- 排序算法——快速排序的图解、代码实现以及时间复杂度分析
- 内核链表list.h---把函数功能记下来,不用忘记了每次都要分析代码
- DeepLearningToolbox(1)代码框架分析之关键函数的主要功能
- 排序算法——插入排序的图解、代码实现以及时间复杂度分析
- 找出数组中第k大的数(时间复杂度分析、C++代码实现). TopK in array. ( leetcode - 215 )
- 写一个功能函数实现从数组中找出两个值相加等于某一个值,要求时间复杂度为 n;
- 求最大子序列和的四种经典方法及其算法时间复杂度分析
- [ARM7--LPC2478]带USB功能的启动代码的分析
- 年月日转 unixtime时间戳(PHP代码函数)
- mysql实现oracle分析函数功能 over
- 算法时间复杂度分析
- Vxworks启动代码usrRoot()函数分析(一)
- linux i2c子系统代码分析6 ---操作函数i2c数据处理函数
- 时间分析会用到的函数
- JQuery html API支持解析执行Javascript脚本功能实现-代码分析
- javascript 日期或者时间比较||不用手动写复杂函数
- 约瑟夫问题的数学角度分析 C 数组实现 循环链表实现 递归实现时间复杂度O(logN)