- 浏览: 34134 次
-
最新评论
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define MAX 100000
void ps(int a[],int low,int high) //快速排序
{
int key,i,j;
i=low;
j=high;
key=a[low];
if(low>high) return;
while(i<j)
{
while(key<=a[j] && i<j )
j--;
a[i]=a[j];
while(i<j && key>=a[i])
i++;
if(low<high)
a[j]=a[i];
}
a[i]=key;
ps(a,low,j-1);
ps(a,i+1,high);
}
int main()
{
int a[MAX],b[MAX];
int n,i,j,sum,mid;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n*2;i++)
{
scanf("%d",&a[i]);
}
for(i=1,j=0;i<n*2;j++,i=i+2)
{
b[j]=a[i];
}
ps(b,0,n-1);
sum = 0;
mid = b[(n-1) / 2];
for(i = 0; i < n; i++)
sum += abs(b[i] - mid); //找出中位数
printf("%d\n",sum);
}
return 0;
}
#include <math.h>
#include <stdlib.h>
#define MAX 100000
void ps(int a[],int low,int high) //快速排序
{
int key,i,j;
i=low;
j=high;
key=a[low];
if(low>high) return;
while(i<j)
{
while(key<=a[j] && i<j )
j--;
a[i]=a[j];
while(i<j && key>=a[i])
i++;
if(low<high)
a[j]=a[i];
}
a[i]=key;
ps(a,low,j-1);
ps(a,i+1,high);
}
int main()
{
int a[MAX],b[MAX];
int n,i,j,sum,mid;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n*2;i++)
{
scanf("%d",&a[i]);
}
for(i=1,j=0;i<n*2;j++,i=i+2)
{
b[j]=a[i];
}
ps(b,0,n-1);
sum = 0;
mid = b[(n-1) / 2];
for(i = 0; i < n; i++)
sum += abs(b[i] - mid); //找出中位数
printf("%d\n",sum);
}
return 0;
}
发表评论
-
最大子段和
2012-01-05 13:59 794给出N个数字, 计算出最大的子段和。 Input 第一行给 ... -
最长不下降子序列长度
2012-01-05 13:55 1356对于序列(1, 7, 3, 5, 9, 4,,有它的一些不下降 ... -
求两字符串匹配的最长子序列
2012-01-05 13:52 1032如果两种特征序列的公共子序列越长表示越接近,现在请你帮助计算出 ... -
编辑距离问题
2012-01-05 13:48 681#include<iostream> #incl ... -
Kruskal最小生成树
2011-12-08 14:26 718#include<iostream> #inclu ... -
prime
2011-12-01 20:09 626#include<iostream> using ... -
哈弗曼编码
2011-11-28 10:43 1#include<iostream> #defi ... -
哈弗曼编码
2011-11-28 10:42 556#include<iostream> #defi ... -
#贪心算法(零件加工)
2011-10-27 13:25 1012#include<stdio.h> #includ ... -
众数问题
2011-10-20 14:57 812#include <stdio.h> #inclu ... -
幂的精确求值
2011-09-22 15:07 477#include<iostream> using ... -
大数加法
2011-09-22 12:56 638#include<iostream> #incl ... -
三姐妹之出题
2011-09-15 14:15 700#include<iostream> #incl ... -
最大子段和问题(分治)(##)
2011-09-08 21:31 678#include<stdio.h> #defin ... -
最大子段和问题(O(N^2))
2011-09-08 15:04 625#include<stdio.h> int a[ ... -
最大子段和问题(O(N^3))
2011-09-08 14:45 499#include<stdio.h> int a[ ...
相关推荐
在IT领域,输油管道问题是一个经典的算法应用实例,它主要涉及到数据结构和算法的设计与分析。本项目中,我们有一个名为"输油管道问题算法源程序"的压缩包,其核心是通过VC6.0集成开发环境实现的C++代码。这个程序...
这个场景可以类比于在一系列输油管道中找到最优的集中点,以最小化所有管道到该集中点的距离总和,因此被称为“输油管道问题”。下面将详细解析这段代码的关键知识点: ### 1. 快速排序算法(Quick Sort) 代码中...
从给定的文件信息来看,标题为“输油管道问题 算法设计”,描述较为模糊,仅提及了资源在特定环境下可能无法运行,但整体可用。标签则明确指向了“最短问题”和“算法设计”。代码部分展示了一个用C语言编写的程序,...
### C语言中的输油管道问题解析 #### 一、背景介绍 在计算机科学与软件工程领域,特别是针对数据处理和优化问题时,经常会遇到需要通过算法来解决的问题。本篇文章将探讨一个具体的问题:如何利用C语言来解决“输油...
输油管道问题,程序设计,程序源码……………… 内含具体设计方法
### 输油管道问题 #### 背景介绍 在石油开采行业中,为了高效地将各个油井中的原油运输至集中处理站点,常常需要构建复杂的输油管道网络。本篇文章主要探讨了一个具体的数学优化问题——如何设计一条从东向西延伸...
### 输油管道问题详解 #### 一、问题背景与描述 在某石油公司的项目规划中,计划建造一条从东向西延伸的主输油管道,这条管道需要穿越一个包含 n 口油井的油田区域。根据工程设计的要求,每口油井都需要通过一条...
输油管道问题 某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)...
### 输油管道问题的设计与实现 #### 背景介绍 在现代石油行业中,为了将原油从油井运输到加工地点或储存设施,通常需要设计并建立高效的输油管道网络。其中,一个重要的问题是确定主输油管道的最佳位置,使得所有...
本话题聚焦于“输油管道问题”,这其实是一个用排序算法来解决的实际应用场景。输油管道问题通常涉及如何有效地调度多个管道,以最大化输送石油或其他液体的效率。 在石油工业中,输油管道系统是一个复杂网络,由多...
输油管道问题是一个经典的算法分析问题,涉及到在二维空间中寻找一条直线,使得所有油井到这条直线的垂直距离之和最小。这个问题的实际背景是优化石油公司的输油网络,以减少建设成本。在这个问题中,我们有 n 口...
### 算法分析:输油管道问题C程序解析 #### 实验背景及目标 **实验目的:** 本实验旨在使学生熟练掌握分治法的相关概念及其递归表达式的应用,并能够运用分治法解决现实生活中的实际问题。 **实验要求:** 学生...
输油管道问题是一个典型的计算机科学中的分治策略应用实例,主要目标是确定一条主管道的最佳位置,以使得所有油井到主管道的输油管道长度之和最小。问题描述如下: 1. 油田中有n口油井,每口油井都有其东西方向的x...
#include "stdio.h" #include "stdlib.h" #include "math.h" main() {int i,j,sum=0,n,mode=0,temp,z; scanf("%d",&n); int a[n+1]; for(i=1;i;i++) scanf("%d%d",&z,&a[i]); for(i=1;i;... }
根据给定的信息,本文将详细解释“输油管道问题”的背景、问题定义、解决方法以及相关的编程实现细节。 ### 背景介绍 在石油工业中,为了有效地运输原油,通常需要建立复杂的输油管道网络。这些网络不仅连接着各个...