剑指offer 实现数组的全排列
来源:互联网 发布:阿里云 rds sql审计 编辑:程序博客网 时间:2024/06/01 21:08
思路:
递归实现:
交换元素->递归->交换元素。递归到数组末尾是打印所有元素,所以得记住数组头。
#include <stdio.h>void printAll(int a[], int n);void printInt(int a[], int n);int *g;int num;int main(int argc, char *argv[]){int a[] = {1,2,3};g = a;num = sizeof(a)/sizeof(int);printAll(a, num);return 0;}void printAll(int a[], int n) {if(a == NULL)return;if(n<0)return;if(n==0) {printInt(g, num);return;}int i;for(i=0 ; i<n ; i++) {int t = a[0];a[0] = a[i];a[i] = t;printAll(a+1, n-1);t = a[0];//!!必须要换回来 a[0] = a[i];a[i] = t;}}void printInt(int a[], int n) {int i;for(i=0; i<n ; i++) {printf("%d\t",a[i]);}printf("\n");}
0 0
- 剑指offer 实现数组的全排列
- 剑指Offer-数组全排列
- 剑指Offer------字符串的排列(全排列)
- 剑指offer----字符串的全排列----java实现
- 剑指offer:字符串的全排列
- 剑指offer 28. 字符串的全排列
- 剑指offer:字符串的排列(字符串全排列)
- Java实现数组的全排列
- 数组全排列算法的python实现
- 剑指offer 之 字符串的全排列、全组合
- 数组的全排列
- 数组的全排列
- 数组的全排列
- 数组的全排列
- 数组的全排列
- 数组的全排列
- 数组的全排列
- 数组的全排列
- 用java写聊天窗口
- NYOJ 79 拦截导弹
- UVa 230 - Borrowers
- SSH通过代码导入xls文件
- Node.js中的事件驱动编程详解
- 剑指offer 实现数组的全排列
- apache2.4+php5+mysql配置
- [toj1003]Transportation
- strtok,strspn、strcspn和strpbrk
- 【学习ios之路:C语言】函数及递归的简单应用
- hdu2652——Warching TV
- C++11初窥二: 继承构造函数和委派构造函数
- 序列的性能问题
- 客户端 用不用 bind 的区别