void lis_sort_ii(LIS_INT is, LIS_INT ie, LIS_INT *i1, LIS_INT *i2) { LIS_INT i,j; LIS_INT p,t1,t2; LIS_INT v; if( ie <= is ) return; p = (is+ie)/2; v = i1[p]; lis_swap(i1[p],i1[ie],t1); lis_swap(i2[p],i2[ie],t2); i = is; j = ie; while(i<=j) { while(i1[i] < v) { i++; } while(i1[j] > v) { j--; } if( i<=j ) { lis_swap(i1[i],i1[j],t1); lis_swap(i2[i],i2[j],t2); i++; j--; } } lis_sort_ii(is,j ,i1,i2); lis_sort_ii(i ,ie,i1,i2); }
void lis_sort_ii(int is, int ie, int *i1, int *i2) { int i,j; int p,t1,t2; int v; if( ie <= is ) return; p = (is+ie)/2; v = i1[p]; lis_swap(i1[p],i1[ie],t1); lis_swap(i2[p],i2[ie],t2); i = is; j = ie; while(i<=j) { while(i1[i] < v) { i++; } while(i1[j] > v) { j--; } if( i<=j ) { lis_swap(i1[i],i1[j],t1); lis_swap(i2[i],i2[j],t2); i++; j--; } } lis_sort_ii(is,j ,i1,i2); lis_sort_ii(i ,ie,i1,i2); }