快速排序

July 24th, 2014, Thrusday

Quicksort

C

int partition(Item a[], int l, int r) {
  int i = l-1, j = r;
  Item v = a[r];

  while(i < j) {
    while (a[++i] < v);
    while (v < a[--j]);
    if (i < j) exch(a[i], a[j]);
  }
  exch(a[i], a[r]);
  return i;
}

void quicksort(Item a[], int l, int r) {
  int i;
  if (r <= l) return;
  i = partition(a, l, r);
  quicksort(a, l, i-1);
  quicksort(a, i+1, r);
}

Js

sort check

Last updated