コード例 #1
0
ファイル: quick_sort.c プロジェクト: dipak15/Algo-CLR-Project
void quick_sort_int(int *array, int p, int r) {
  int q;
  if (p < r) {
    q = partition(array, p, r);
    quick_sort_int(array, p, q - 1);
    quick_sort_int(array, q + 1, r);
  }
}
コード例 #2
0
ファイル: quick_sort.c プロジェクト: dipak15/Algo-CLR-Project
void qs(int* array, int size) {
  if ((array == NULL) || (size <= 0)) {
    printf("Invalid input parameters. Exiting.\n");
  }
  quick_sort_int(array, 0, size - 1);
  return;
}
コード例 #3
0
ファイル: loadGraph.c プロジェクト: Buttonwood/SOAPdenovo2
void quick_sort_int ( unsigned int * length_array, int low, int high )
{
	int i, j;
	unsigned int pivot;

	if ( low < high )
	{
		pivot = length_array[low];
		i = low;
		j = high;

		while ( i < j )
		{
			while ( i < j && length_array[j] >= pivot )
			{
				j--;
			}

			if ( i < j )
			{
				length_array[i++] = length_array[j];
			}

			while ( i < j && length_array[i] <= pivot )
			{
				i++;
			}

			if ( i < j )
			{
				length_array[j--] = length_array[i];
			}
		}

		length_array[i] = pivot;
		quick_sort_int ( length_array, low, i - 1 );
		quick_sort_int ( length_array, i + 1, high );
	}
}
コード例 #4
0
ファイル: optic_flow_int.c プロジェクト: Djeef/paparazzi
void quick_sort_int(int *a, int n)
{
  if (n < 2) {
    return;
  }
  int p = a[n / 2];
  int *l = a;
  int *r = a + n - 1;
  while (l <= r) {
    if (*l < p) {
      l++;
      continue;
    }
    if (*r > p) {
      r--;
      continue;
    }
    int t = *l;
    *l++ = *r;
    *r-- = t;
  }
  quick_sort_int(a, r - a + 1);
  quick_sort_int(l, a + n - l);
}