组合数学 字典序法生成序列C语言实现

来源:互联网 发布:unity3d需要什么语言 编辑:程序博客网 时间:2024/06/14 03:27
#include<stdio.h>int main(void){int a[4] = {1,2,3,4};int n = 4;int i,k = 0;int max;int temp = 0;for(i = 0;i < n;i++){printf("%d ",a[i]);}printf("->");while(1){max = 0;k = 0;for(i = 0;i <= n-2;i++){if(a[i] < a[i+1]){k = i+1;}}if(k == 0){break;}for(i = 0;i < n;i++){if(a[k-1] < a[i]){if(i > max){max = i;}}}temp = a[k-1];a[k-1] = a[max];a[max] = temp;for(i = k;i <= (k+n-1)/2;i++){temp = a[i];a[i] = a[n-1-i+k];a[n-1-i+k] = temp;}for(i = 0;i < n;i++){printf("%d ",a[i]);}printf("->");}return 0;}

0 0
原创粉丝点击