1、将一个n维数组初始化,第0位填1,第1位填2.。。。。。 第n-1位填n;
2、将数组看为两部分,一个是已排好的,剩下是待排的,分别用两个指针指向;
3、将第一个字符,依次与后n-1个字符交换值,每次交换得到一个新的首数字;
4、剩下的n-1个数字按2、3步骤重复直至所有数组完成排列;
使用c++实现,代码还有些繁琐,明天再仔细看看优化一下
代码
1 #include
2 using namespace std;
3
4 void swap(int *p1,int *p2)
5 {
6 //交换p1和p2指向的值
7 int tmp=*p1;
8 *p1=*p2;
9 *p2=tmp;
10 }
11 void output(int *p,int n)
12 {
13 while(n>0)
14 {
15 cout<
16 p++;
17 n--;
18 }
19 cout<
20 }