@Rishi: Try it on the original data with a[1] changed from 12 to 35:

    int array[10]={99,35,45,33,88,9098,112,33455,678,3};

What do you get as a result?

Dave

On Sep 23, 12:36 pm, Rishi Agrawal <rishi.b.agra...@gmail.com> wrote:
> @Dave, I check for the values you suggested but the code worked fine. There
> were other errors in the code. I have rectified them now.
>
> The following code seems to be working fine and in O(n) time.
>
> #include <stdio.h>
> #include <stdlib.h>
> void find_two_mins(int array[], int size)
> {
>     int i,t;
>     int min1, min2;
>     if(array[0] <= array[1]) {
>         min1=array[0];
>         min2=array[1];
>     } else {
>             min2=array[0];
>         min1=array[1];
>     }
>     for (i=2; i<size; i++){
>         t=array[i];
>         if(t<=min1) {
>             min2=min1;
>             min1=t;
>             continue;
>         }
>     if(t<=min2) {
>         min2=t;
>     }
>     }
>     printf("\nMin elements are 1: %d 2: %d", min1,min2);
>     printf("\n Absolute difference between two minimum elements are %d\n\n",
> abs(min1-min2));
>
> }
>
> int main()
> {
>     //int array[10]={ 9,2,3,4,1,7,5,6,8,0};
>     //
>     //int array[10]={3,3,1,33,88,9098,112,33455,678,1};
>     //int array[10]={5,3,1,33,88,9098,112,33455,678,1};
>     //int array[10]={2,3,21,33,88,9098,112,33455,678,12};
>     int array[10]={3,2,21,33,88,9098,112,33455,678,12};
>
>     find_two_mins(array,10);
>     return 0;
>
>
>
> }- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to