详细说明:算法实现题2-9 排列的字典序问题
« 问题描述:
n个元素{1,2, , n }有n!个不同的排列。将这n!个排列按字典序排列,并编号为0,1,…,
n!-1。每个排列的编号为其字典序值。例如,当n=3时,6 个不同排列的字典序值如下:
字典序值 0 1 2 3 4 5
排列 123 132 213 231 312 321
« 编程任务:
给定n 以及n 个元素{1,2, , n }的一个排列,计算出这个排列的字典序值,以及按字
典序排列的下一个排列。
« 数据输入:
由文件input.txt提供输入数据。文件的第1 行是元素个数n。接下来的1 行是n个元素
{1,2, , n }的一个排列。
« 结果输出:
程序运行结束时,将计算出的排列的字典序值和按字典序排列的下一个排列输出到文件
output.txt中。文件的第一行是字典序值,第2行是按字典序排列的下一个排列。
输入文件示例 输出文件示例
input.txt output.txt
8
2 6 4 5 8 1 7 3
8227
2 6 4 5 8 3 1 7
[Queen.rar] - 局部搜索法求解N皇后问题。这个算法的特点是引入随机因素,每次运行并不能保证求得问题的最优解,但经过运行之后,一般总能得到一个与最优解相差不大的满意解。
[PIPE.rar] - 算法实现题2-1 输油管道问题 « 问题描述: 某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油 田。从每口油井都要有一条输
[N皇后问题.zip] - 在一个N×N的国际象棋棋盘中摆N个皇后,使这N个皇后不能互相被对方吃掉。
[stir.rar] - 经典算法实现题--集合划分问题,包括题目PDF和程序代码实现,与大家分享。
[tcpsample.rar] - 一个简单的tcp传输的例子
[subsetcalculator.rar] - 本算法实现2-10集合划分问题,采用动态规划法和大整数方法
[server.rar] - 主要写了一个火车添加系统的服务端程序,希望有所帮助。
[lqx100003.rar] - 最优合并问题 给定K个排好序的序列s1,s2,...,sk,用2 路合并算法将这k个序列合并成一个序列。 假设所采用的2路合并算法合并2个长度分另为m 和n的序列需要m+n-
[物流管理系统.rar] - 软件说明书 目录 1登陆 2客户服务 2-1入库操作 2-1-1补单操作 2-2派送通知 2-2-1补单操作 2-2-2新增客户 2-3提货通知 2-4到货查看 3仓库管理 3-3仓库入库 3-4仓
[PIPE.rar] - 算法实现题2-1 输油管道问题 « 问题描述: 某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油 田。从每口油井都要有一条输
[N皇后问题.zip] - 在一个N×N的国际象棋棋盘中摆N个皇后,使这N个皇后不能互相被对方吃掉。
[stir.rar] - 经典算法实现题--集合划分问题,包括题目PDF和程序代码实现,与大家分享。
[tcpsample.rar] - 一个简单的tcp传输的例子
[subsetcalculator.rar] - 本算法实现2-10集合划分问题,采用动态规划法和大整数方法
[server.rar] - 主要写了一个火车添加系统的服务端程序,希望有所帮助。
[lqx100003.rar] - 最优合并问题 给定K个排好序的序列s1,s2,...,sk,用2 路合并算法将这k个序列合并成一个序列。 假设所采用的2路合并算法合并2个长度分另为m 和n的序列需要m+n-
[物流管理系统.rar] - 软件说明书 目录 1登陆 2客户服务 2-1入库操作 2-1-1补单操作 2-2派送通知 2-2-1补单操作 2-2-2新增客户 2-3提货通知 2-4到货查看 3仓库管理 3-3仓库入库 3-4仓