本文主要是介绍1、有一个整数数组,求出两两只差绝对值最小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/************************************************************************/
/* 1、有一个整数数组,求出两两只差绝对值最小 */
/************************************************************************/
//先排序后求值,快速排序O(nlogn),桶排序O(n),但空间也是O(n)
int iCompare(const void* lhs, const void* rhs)
{return *(const int *)lhs - *(const int *)rhs;
}//使用快速排序的方法,时间复杂度O(nlogn), 空间O(1)
int minSubBySort(int *iArr, int length)
{if(!iArr || length < 2)throw new exception("error");//从小到大排序qsort(iArr, length, sizeof(int), iCompare);//遍历求解最小差值int minSub = numeric_limits<int>::max();for(int i = 0; i < length - 1; ++i){int curSub = iArr[i + 1] - iArr[i];if(minSub > curSub)minSub = curSub;}return minSub;
}void insertSort(vector<int>& ivect)
{for(unsigned i = 1; i < ivect.
这篇关于1、有一个整数数组,求出两两只差绝对值最小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!