您的位置:首页 > 其它

求数组中元素的最短距离

2013-09-13 21:26 405 查看
题目:给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-y)最小

解题思路:先排序,然后遍历元素。

#include<iostream>
//#include<cmath>
#include<limits>
using namespace std;

/* author:chhuaj
date:2013.9.13
description:给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-y)最小
*/

//决定升序排序关系
int compare(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}

int main()
{
int num[10]={7,1,9,5,13,21,20,11,3,15};
qsort(num,10,sizeof(int),compare);
int dis = numeric_limits<int>::max();   //设置dis为int型最大值
int x,y;
for(int i=1;i<10;i++)
{
if(num[i]-num[i-1]<dis)
{
dis = num[i]-num[i-1];
x=i-1;
y=i;
}
}
cout<<x<<","<<y<<","<<dis<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: