- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
% }) L; b8 u1 Q( D#include <malloc.h>
: F% _2 a r5 L/ @#include<stdio.h>5 @8 l8 r- C. u) J1 \
#define N 11
# I; m8 r# \ M @0 \: n9 ~; L9 o4 n& T: f! t/*用监视哨查找*/
) L: h8 Z# {1 b9 k$ Eint search(int array[],int n,int k)
) B, m6 J2 Z( |/ d" [; P{int i;8 K( W; ]2 h' K; D
i=n-1;
* J/ ~! A$ V$ _1 Harray[0]=k;$ g+ u) X+ \" V3 S& B: D( b
while(array!=k) i--;) S" Z8 ?" k, A3 X0 u. @
return(i);
; f% v, a+ q- p9 E' _; d$ J& Z}
/ \1 H2 o1 A" b3 ^/*折半查找法*/5 @) _2 l. p/ _
int halfsearch(int array[],int n,int k)
+ b7 d5 @ }: w D- S{int i,j,mid;) q, `1 y* i9 s T
i=1;j=n;
# L6 K* z! T% T& R L Q! |while(i<=j)8 _8 W- H0 v- y; B" C9 q c4 ~
{mid=(i+j)/2;# A( v/ X2 R3 l5 k, k
if(k==array[mid]) return(mid);
4 [) \5 E1 e* B4 }1 s, j! aelse if(k<array[mid]) j=mid-1;
Z* {- B- b, _$ [ else i=mid+1;
. o. x& |7 g9 z}
0 N. H& \. v" G0 lreturn(0);
0 q% T8 O' I$ K1 F# O$ E6 Q}</P>
- u* }# U+ \, C0 Q6 a< >/*冒泡排序法*/
2 k: x3 H8 }! D0 x* e9 mvoid mpsort(int array[])
" F# T& s/ K0 V- m{int i,j,a;# Y/ q* p( m# o; O
a=0;
) X6 m# m2 Z; s) {' c for(i=1;i<N;i++)
; y9 z" R! N$ Q7 W* t for(j=i+1;j<N;j++)
4 e) T1 I9 x% }: g# h9 |+ a, Y if(array>array[j])% _2 w* [; L: G" t$ H0 r% P
{a=array;, q) I0 r* S1 S1 G( j* E
array=array[j];6 W" J9 p( b* b
array[j]=a;}
7 @% j: [1 J* }}
/ p9 v: Z6 l9 q9 L& I% A4 f" J/*直接插入排序*/8 M, r0 Y j4 J; P8 r
void insertsort(int array[]); o0 b% A; W5 H2 I2 f; Y
{int i,j;* u; O$ E; d6 R |! W/ }7 x
for(i=2;i<N;i++)
" S8 z' b: |& ?: B. { {array[0]=array;
8 [3 D$ Z3 f. A4 \4 P* |j=i-1;
; K/ i m5 e% m( O) Uwhile(array[0]<array[j])2 f0 g5 V$ @( j9 J4 ~
{array[j+1]=array[j--];. f9 U1 r/ |8 F7 G$ e: R& i
array[j+1]=array[0];8 z2 ]( G3 w/ n
}
% n% w. \) B* A) P* K! G}: q- _9 l* }7 I9 p, U7 B
}. c+ h( a/ C7 r9 V+ ?) ~
/*建立*/( R( ]! M; a$ [$ D6 G* I: T# z+ A1 l
void creat(int array[])
* F8 K' g* L$ U{int i;& g* ~- D/ S0 g) v
printf("enter the array:\n");
. S2 |. M8 w5 h; R for(i=1;i<N;i++)5 _: d) U: q4 n" y4 n4 C8 g7 J
scanf("%d",&array);# F. u+ j% s& r3 r- t
}</P>
+ F6 c6 T! M. s0 u; ]: C; b< >/*显示*/
3 a: T0 c9 i( r1 ^9 cvoid print(int array[])
) x2 K+ r# C# ] {int i;% }. c% D) {; `9 u5 u* N4 G! z
printf("The numbers after sort is:\n");4 M3 k# ]1 C8 v. _
for(i=1;i<N;i++)& x( A7 m1 }) n* k3 Q% ?
printf("%d ",array);! Z' A* q7 K8 r+ [! g
printf("\n");
\( W( J" ?. b) J& B }</P>8 f9 v# s0 s0 L7 \, e% e. X
< >% X8 \# U' R; U- v& }; j5 k
main()# F1 Z' b, a* k& l" h+ P
{int a[11],i,x,chang;/ c2 V* Q% H0 [ _% R
/*printf("enter the array\n");
' } M8 V# G6 v for(i=1;i<11;i++)2 x7 I) {1 i: ?* A( Y( }
scanf("%d",&a);*/</P>( l7 n) o/ [6 q. s8 W
< >aga:3 h5 U/ O3 `0 ~* \* M
printf("\nchang:1: use watching method finding\n 2:use half method finding\n 3: use directness intsert method sort\n 4:use bubble up method sort\n 5:exit\n");
. g. @% n/ g3 ]. l scanf("%d",&chang);
5 u8 @, R% a& L3 }% `* d switch (chang)
, K& d2 t9 l5 Q, `* p {case 1:4 J: b% I1 A5 l5 j) i) f: \0 ?
{creat(a); m& }6 s2 P2 \8 V: Z
printf(" lease enter the search number:\n");5 a$ t+ T8 |8 Y. J6 v+ E( y& h$ I: ~1 n
scanf("%d",&x);
* d O+ Q8 l! }8 b! n1 W4 \+ J/ I' t printf("The number station is:%d\n",search(a,N,x));
2 P8 D3 N, B A; | goto aga;
, X5 N+ C) P0 X. i! u5 X* S: i4 i }) c( C# Y9 u% ^' s! [3 g. j" W
case 2:
M/ r) S5 f3 y/ \2 w9 h$ t- V { creat(a);# [- h" ^% K$ I) M/ e- |7 Y
insertsort(a);4 m" Y5 H' x: L6 y* J
print(a);+ q0 p+ E/ k% N+ f! {5 K
printf(" lease int the search number:\n");/ F& v; P$ K M: t# h, O
scanf("%d",&x);" n* N7 [+ S" W/ j
printf("The number station is:%d\n",halfsearch(a,N,x));6 N, X( e! V ^ v- p" _* G' V
goto aga;
7 y0 P! o2 d* u( p# k }
( i$ ~0 Y" V; F/ L. u7 ~4 ? case 3:
& e9 Y* x8 P/ G+ Y' s5 i0 y. } {creat(a);8 P w$ j/ [. O1 t7 E
insertsort(a);
" k6 [1 _8 a2 D7 ^6 y! Q" Z print(a);
( D0 `: g$ f; u goto aga;% X* S) x; x1 d$ X# _
}</P>1 L& v$ w9 B9 x1 l/ }" E1 ~$ Y
< > case 4:
) k6 s' U2 j0 @. s7 d& m {creat(a);
( B" K& v4 t) p, y$ N mpsort(a);3 D, Q6 w8 d6 }8 A# P( v
print(a);
( v1 H& M3 R2 ^ goto aga;- O X7 e. [2 m- ?. O
}</P>/ Y3 j6 \% E1 F
< > case 5:{ printf("exit!\n");break;}) `- f) o, X8 p3 ~
default:{printf("Error!\n"); goto aga;}
3 _$ p4 S/ j7 _) J; t4 |8 I( j8 V}& I7 L% @& V' q4 j& e/ h
}
E. k: k R) U; }2 k- H5 b8 q, ~ + E8 G3 Z; H1 ^' O! |
9 O& u7 x6 Y% x( Q; }: O4 l
</P>, [: t. d5 C5 v: P0 r8 u: ?4 P4 E. M( L
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|