Makes positive numbers appear after the negative numbers in an array.
Complexity <math>\theta(n)</math>
No. of swaps in the worst case = <math> \lfloor n/2 \rfloor</math>
<syntaxhighlight lang="c">
int main() {
int i, n, pi, ni, count = 0; int a[1000]; printf("Enter size of array: "); scanf("%d",&n); printf("Enter numbers of array\n"); for(i=0; i<n; i++) { scanf("%d",&a[i]); } ni = n-1; while(a[ni] >= 0) ni--; pi = 0; while(a[pi] < 0) pi++; while(ni > pi) { int temp = a[pi]; a[pi] = a[ni]; a[ni] = temp; while(a[ni] >= 0) ni--; while(a[pi] < 0) pi++;
}
for(i=0; i<n; i++) { printf("%d ", a[i]); }
}
</syntaxhighlight>
Makes positive numbers appear after the negative numbers in an array.
Complexity <math>\theta(n)</math>
No. of swaps in the worst case = <math> \lfloor n/2 \rfloor</math>
<syntaxhighlight lang="c">
int main() {
int i, n, pi, ni, count = 0; int a[1000]; printf("Enter size of array: "); scanf("%d",&n); printf("Enter numbers of array\n"); for(i=0; i<n; i++) { scanf("%d",&a[i]); } ni = n-1; while(a[ni] >= 0) ni--; pi = 0; while(a[pi] < 0) pi++; while(ni > pi) { int temp = a[pi]; a[pi] = a[ni]; a[ni] = temp; while(a[ni] >= 0) ni--; while(a[pi] < 0) pi++;
}
for(i=0; i<n; i++) { printf("%d ", a[i]); }
}
</syntaxhighlight>