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

Revision as of 21:32, 15 November 2013

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

  1. include<stdio.h>

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

  1. include<stdio.h>

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>