Search-implement monitoring record search
# Include <stdio. h>
# Include <stdlib. h>
Int CMP ( Const Void *, Const Void * B)
{
Return *( Int *) -*( Int *) B;
}
Int Main ()
{
Int A [ 101 ], I;
For (I = 1 ; I <= 100 ; I ++)
A [I] = rand () % 100 ;
For (I = 1 ; I <=100 ; I ++)
Printf ( " % D " , A [I]);
Printf ( " \ N " );
Int Key;
Scanf ( " % D " , & Key );
Printf ( " Sequential Search \ n " );
A [ 0 ] = Key;
For (I = 100 ; I> = 0 ; I --)
If (A [I] = Key ){
Printf ( " % D \ n " , I );
Break ;
}
Qsort (& [ 1 ], 100 , Sizeof ( Int ), CMP );
For (I = 1 ; I <= 100 ; I ++)
Printf ( " % D " , A [I]);
Printf ( " \ N " );
Printf ( " Half lookup \ n " );
Int Mid, start =1 , End = 100 ;
Mid = (start + end )/ 2 ;
While (Start <= end)
{
If (A [Mid] = Key ){
Printf ( " % D \ n " , Mid );
Break ;
}
If (A [Mid]> key ){
End = mid- 1 ;
Mid = (end + start )/ 2 ;
}
Else {
Start = Mid + 1 ;
Mid = (start + end )/ 2 ;
}
}
Printf ( " End \ n " );
}