Line 23: | Line 23: | ||
ni--; | ni--; | ||
pi = 0; | pi = 0; | ||
− | while(a[pi] <0) | + | while(a[pi] < 0) |
pi++; | pi++; | ||
− | while(ni >pi) | + | while(ni > pi) |
{ | { | ||
int temp = a[pi]; | int temp = a[pi]; | ||
Line 32: | Line 32: | ||
while(a[ni] >= 0) | while(a[ni] >= 0) | ||
ni--; | ni--; | ||
− | while(a[pi] <0) | + | while(a[pi] < 0) |
pi++; | pi++; | ||
Makes the 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 the 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>