- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >7 F0 K) v( X! U# D% ~/ U3 h
#include <malloc.h>( P- v4 R3 e4 w0 ^
#include<stdio.h>
' m0 C( i( u' O+ e5 C, d$ n#define N 11
4 b/ Z7 z3 K; P5 |/*用监视哨查找*/
6 l8 O3 o0 D K5 `+ F! Q3 l$ s' {int search(int array[],int n,int k)1 T9 f! E6 k% _- R1 K) I
{int i;
, H: C1 R2 d/ i3 s/ ] F& a i=n-1;
}5 }/ s7 k* G" {4 U' R) Larray[0]=k;8 {4 Q: J5 K( {, }5 B4 U3 X
while(array!=k) i--;! ]" | u9 v4 e1 p- Z2 ~. M
return(i);8 L% Y: M+ q6 @# M
}
. j! J8 k* ?5 j2 E* x& G- Z/*折半查找法*/9 W, Z1 `: d- u+ @/ U: G
int halfsearch(int array[],int n,int k)
7 P' z9 A2 ~3 {: {- t' u" L{int i,j,mid;* ?; x% t# d. O- I' x/ f- T
i=1;j=n;- Y$ v/ s( C* o' y
while(i<=j)' }0 }/ `. a0 O9 h; l
{mid=(i+j)/2;
/ \ z# j ?/ u6 n& k! a) x# O6 n if(k==array[mid]) return(mid);
2 D3 G- c9 k7 J) n6 _else if(k<array[mid]) j=mid-1;
5 [/ ~- w" U; ~; v4 v. I: s# D( Z7 { else i=mid+1;. N( c$ R/ J- O" e2 r
}
. A. M9 v: ?4 k; t: z+ w8 ~6 h9 sreturn(0);
$ t8 ?9 p! g+ p" x) e& p/ U1 c8 a}</P>
! q# i8 y% R# R; J" t< >/*冒泡排序法*/
3 f2 S6 x& c$ `/ S3 P( w& O* pvoid mpsort(int array[])' b, ? k1 r+ a) U- t, j) l# L
{int i,j,a;+ q; a) }0 s+ U, H" V
a=0;, E, P% K! c6 I5 o O
for(i=1;i<N;i++)
% f; B! U/ a; ^) q2 J8 E for(j=i+1;j<N;j++): i" k% f' d Q: ^! ^- |
if(array>array[j])6 Z' N5 [* B$ u
{a=array;
/ y6 m0 ^+ J9 V) Q/ l8 [0 u4 A8 a/ v array=array[j];
) L8 X: y# w4 H7 a3 ?1 R- C array[j]=a;}. x& B3 q1 |3 X9 X) N# W
}/ Q4 j+ o+ H0 z) B
/*直接插入排序*/' ]% L3 @* D8 O1 M; ]8 p
void insertsort(int array[])
( D6 T' ], W5 k. j$ Z{int i,j;4 E. g0 J4 N6 w/ q
for(i=2;i<N;i++); W5 W U7 E* [6 {5 `! } d- D2 I
{array[0]=array;: N# u" a" e2 H( m- {
j=i-1;
* `* B2 i% L2 O6 _; Wwhile(array[0]<array[j])2 b& e" L0 p" |' E0 S: j4 x! S
{array[j+1]=array[j--];
- n! Q3 |, S8 l- o Q, ~ array[j+1]=array[0];% ^4 |) ], {+ r2 b2 K0 g
}
! s0 t0 I7 c5 x; w1 D2 p4 j}$ C( @% g' n" M# `/ Y0 L
}
% q/ I' n- U/ {9 `6 a$ ^3 s2 s/*建立*/7 i8 [+ W2 u i0 t3 \2 D f4 k
void creat(int array[])
- D- ^" \4 _: q5 e2 [% Z3 T0 H{int i;
/ w! }: n% P$ i: f- ] printf("enter the array:\n");1 X; |$ Y: g- Q, |; Z. Y& ?0 Y
for(i=1;i<N;i++)9 |" e2 u3 Z( a" J' M6 k$ z
scanf("%d",&array);8 u4 _! e- P j% i8 o& W- K
}</P>
# _1 o* E9 Q/ @3 z. Q; X& m# {< >/*显示*/% L, y, `7 Z, @5 C. w
void print(int array[])
) X2 v. Y4 T; L( R8 L; B {int i;
! y) v% E7 v$ o& `6 T printf("The numbers after sort is:\n");# e7 a* O/ H% N; g* @
for(i=1;i<N;i++), r3 b8 P6 m+ I% g
printf("%d ",array);
) b1 A t6 n' g6 l printf("\n");* z' N& |1 Y8 ]" G+ ^( h
}</P>
' V5 p$ K0 ?* P' H# w8 Y8 h< >
, w+ q. F7 C& A6 w7 R( dmain() q( P8 l# D2 j* @ l
{int a[11],i,x,chang;
6 e0 s' S- I/ e( }; s- F /*printf("enter the array\n");
) r: w: \3 D* g" w2 V% j7 q for(i=1;i<11;i++)
% n4 D& k$ o* H scanf("%d",&a);*/</P>& y3 G5 _- Z1 I4 i4 z5 z+ m
< >aga:& z% D9 a# b; e( B( h& p$ @) V
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");2 m7 @: U: y7 H( G/ }% N
scanf("%d",&chang);
) @2 z' j* F6 R) _ _& n7 R switch (chang)
6 l$ I$ V8 y7 ~# M/ ?4 j {case 1:) B. f3 J) w7 \+ W1 ~, X* |: U
{creat(a);
3 o; F8 q/ {3 S5 ?6 w5 w- K: G printf(" lease enter the search number:\n");4 X9 N, p( d6 {! P$ ?. h1 u, c3 h
scanf("%d",&x);# c0 T' P; F, ~* b
printf("The number station is:%d\n",search(a,N,x));
- c8 r4 p8 M8 Q* u goto aga;
7 O" Y2 M9 ?4 t0 B) a* _ }
6 U1 {( t* n7 d6 W3 F: N D case 2:
: O0 m+ C1 T3 {8 d. B" r* a9 k { creat(a);5 N5 T. C+ h, v' M
insertsort(a);3 X( i3 b$ k4 `! G- D& [/ c6 O! i
print(a);
: @& E! A; J9 k/ P printf(" lease int the search number:\n");
" }% \ l1 @1 |( ?: R& t6 Q scanf("%d",&x);! I+ A" g! m: k+ C
printf("The number station is:%d\n",halfsearch(a,N,x));
1 A4 U* q- C8 p goto aga;) E Y2 o& E+ `, E2 q3 {: R
}
; C# c9 @. ^/ J1 |( } case 3:
( T' s- `! B& v {creat(a);* t n" B% @' M8 g5 }/ C
insertsort(a);9 d& P* o, Z: z p. Q$ ?3 [- s" a
print(a);
) Q& L0 u$ Q- w! m9 `* u goto aga;# |! C. D6 X+ H' v5 u
}</P>
( h" y4 C, K/ v< > case 4:
+ n% o# q8 r; M/ K {creat(a);
0 Y- |) i2 e" y& j6 y+ p mpsort(a);" L# A9 [% |: R5 ~
print(a);- t3 G; u) g$ r, f9 n* w O
goto aga;1 J* ^, z! _4 Y; j* _! Q! |
}</P>
7 b' [+ T2 g( u* p8 ]9 M< > case 5:{ printf("exit!\n");break;}
5 k' E2 O, M$ b6 B/ w default:{printf("Error!\n"); goto aga;}. _$ ~8 i3 Z m! X# U7 F/ V. q# N
}
# g: w1 M1 t: y9 C% a9 j}3 u0 [4 a# I" |9 I" C
" h; X# @! H8 h i5 S& \* a I$ J + c% L w3 t& m, q
</P>
' u3 ~+ ?' g) o5 C3 l' o# O[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|