Пример #1
0
void q_sort(int head, int tail)
{//クイックソートの実装
  int middle;
  if (head > tail) return;
  middle = partiton(head, tail);
  q_sort(head, middle - 1);
  q_sort(middle + 1, tail);
}
Пример #2
0
void quicksort(int a[],int low,int high)
{
int s;
if(low<=high)
{
 s=partiton(a,low,s-1);
 quicksort(a,s+1,high);
}
 }
Пример #3
0
// 完成对[L, R)区间的Fano编码, 我们将编码前缀放在C中并逐步变更, 不需要作为参数来传递.
void Fano_Coding(size_t L, size_t R)
{
	if (R > L + 1)
	{
		// 区间中至少有两个元素才进行编码. 此外, 该调用可保证区间非空.
		size_t S = partiton(L, R);
		// 注意赋值次序, C[L]的变更最后才能进行.
		C[S] = C[L] + "1";	// 先进行右半部分的前缀变更操作.
		C[L] = C[L] + "0";	// 再进行左半部分的前缀变更操作.
		Fano_Coding(L, S);
		Fano_Coding(S, R);
	}
}