コード例 #1
0
void _Qsort(uint32_t* alut, uint32_t* clut, int l, int r) {
  if (l < r) {
    int pI = _Partition(alut, clut, l, r);
    _Qsort(alut, clut, l, pI - 1);
    _Qsort(alut, clut, pI + 1, r);
  }
}
コード例 #2
0
ファイル: fx_dib_convert.cpp プロジェクト: hoanganhx86/pdfium
void _Qsort(FX_DWORD* alut, FX_DWORD* clut, int l, int r) {
  if (l < r) {
    int pI = _Partition(alut, clut, l, r);
    _Qsort(alut, clut, l, pI - 1);
    _Qsort(alut, clut, pI + 1, r);
  }
}
コード例 #3
0
	//Finds the positionth smallest element in the list
	static int Selection(std::vector<int> list, int position)
	{
		int first = 0;
		int last = list.size();
		int j;

		while (true)
		{
			j = _Partition(list, first, last);
			
			//Return positionth smallest
			if (position == j)
				break;

			if (position < j)
				//Search left sublist
				last = j - 1;
			else
				//Search right sublist
				first = j + 1;
		}

		return list[j];
	}
コード例 #4
0
	//Paritions a list
	static void Partition(std::vector<int> &list)
	{
		_Partition(list, 0, list.size());
	}