文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[obt]我

[obt]我

时间:2010-05-29  来源:crispgm

日志标题:我
发表时间:2008-5-13 20:57:00
日志内容:昨天我编出了生成组合和逆序数今天我上交了计算器并便出了even算法感觉很high于是做高数发现第二型也开始会了小事就这么些小事让我接近恢复正常了依旧需要爱但不再那么急切依旧很脆弱但不容易发火我就是这么一个小事触发事件的人#include <stdio.h>#include <iostream>using namespace std;#define DIR_LEFT 0#define DIR_RIGHT 1#define NO_ACTIVE_NUMBER -1typedef struct tagNumber{ int ; int direction;} Number;int findMaximumActiveNumber( Number *a , int n );int findPPos( Number *a, int n, int p );void main(){ int n; cout << "输入n: "; cin >> n; Number *a = new Number[ n ]; FILE *op = fopen( "生成排列.txt", "w" ); for ( int i = 0 ; i < n ; i++ ) { a[ i ]. = i + 1; a[ i ].direction = DIR_LEFT; fprintf( op, "%d", a[i]. ); } fprintf( op, "\n" ); while( findMaximumActiveNumber( a, n ) != NO_ACTIVE_NUMBER ) { // 找出最大活动整数 int pos = findMaximumActiveNumber( a, n ); int m = a[ pos ].; Number hold; // 交换m和其相邻的整数 if ( a[ pos ].direction == DIR_LEFT && pos != 0 ) { hold = a[ pos ]; a[ pos ] = a[ pos - 1 ]; a[ pos - 1 ] = hold; } else if ( a[ pos ].direction == DIR_RIGHT && pos != n-1 ) { hold = a[ pos ]; a[ pos ] = a[ pos + 1 ]; a[ pos + 1 ] = hold; } // 交换所有p>m的p的方向 if ( m < n ) { for ( int j = m + 1 ; j <= n ; j++ ) { int p_pos = findPPos( a, n, j ); if ( a[ p_pos ].direction == DIR_LEFT ) a[ p_pos ].direction = DIR_RIGHT; else a[ p_pos ].direction = DIR_LEFT; } } // 输出 for ( i = 0 ; i < n ; i++ ) fprintf( op, "%d", a[i]. ); fprintf( op, "\n" ); } delete [] a;}int findMaximumActiveNumber( Number *a , int n ){ int i; int max = NO_ACTIVE_NUMBER; int max_val = 1; for ( i = 0 ; i < n ; i++ ) { if ( i != 0 && a[ i ].direction == DIR_LEFT && a[ i ]. > a[ i-1 ]. && a[ i ]. > max_val ) { max = i; max_val = a[ i ].; } if ( i != n-1 && a[ i ].direction == DIR_RIGHT && a[ i ]. > a[ i+1 ]. && a[ i ]. > max_val ) { max = i; max_val = a[ i ].; } } return max;}int findPPos( Number *a, int n, int p ){ for ( int i = 0 ; i < n ; i++ ) if ( a[ i ]. == p ) return i;}
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载