mirror of
https://github.com/huihut/interview.git
synced 2024-03-22 13:10:48 +08:00
31 lines
994 B
Markdown
31 lines
994 B
Markdown
|
|
|||
|
## 输油管道问题
|
|||
|
|
|||
|
### 代码
|
|||
|
|
|||
|
[输油管道问题代码](Tubing.cpp)
|
|||
|
|
|||
|
### 问题说明
|
|||
|
|
|||
|
某石油公司计划建造一条由东向西的主输油管道。
|
|||
|
该管道要穿过一个有n 口油井的油田。
|
|||
|
从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。
|
|||
|
如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),
|
|||
|
应如何确定主管道的最优位置,
|
|||
|
即使各油井到主管道之间的输油管道长度总和最小的位置?
|
|||
|
|
|||
|
### 功能说明
|
|||
|
|
|||
|
本程序用排序求中值的方法求解输油管道问题。
|
|||
|
|
|||
|
### 代码简述
|
|||
|
|
|||
|
通过用户输入数据(只输入油井数n、每个油井的y坐标),
|
|||
|
程序输入检测,动态分配空间,排序(使用快速排序),
|
|||
|
求出中间值,输出。
|
|||
|
|
|||
|
输出有以下两种情况:
|
|||
|
|
|||
|
1. 当n为奇数,则最优位置为y数组的第n/2个油井的y坐标
|
|||
|
|
|||
|
2. 当n为偶数,则最优位置为y数组的中间两个油井的y坐标的区间
|