| 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>