- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
5 w5 k& w- e! A( Y#include <malloc.h>
3 P5 H) r7 u) G p- W#include<stdio.h>
1 ^8 Z* a4 E' @- @2 B3 S#define N 113 f6 H8 c) V: p) y4 [
/*用监视哨查找*/
3 x) ~! [+ h2 ~3 @, Nint search(int array[],int n,int k)7 V7 L" w- f, o2 k# ^: a5 p' r$ ~
{int i;9 D7 S! V" T' @; W
i=n-1;
. |. ^9 [) q: a# c2 barray[0]=k;* [/ I/ p6 H: U E l S
while(array!=k) i--;
C C$ V# R# v+ ?# }return(i);" i; l2 p% V( Y- P( Z4 ]* ]
}
+ x) l6 W- ]/ ^7 G& k/*折半查找法*/0 }+ T2 W# n; B% T" [4 z; M1 u
int halfsearch(int array[],int n,int k)
; G( t7 p; b: D9 m+ o2 a/ i; W{int i,j,mid;% v- p& m$ q7 L5 T* [
i=1;j=n;
+ q, y) v$ M6 a/ c+ @while(i<=j)
8 g0 C- f( U$ H+ a0 p1 w{mid=(i+j)/2;
3 ^' W. e) t1 Q9 C% R; c( w if(k==array[mid]) return(mid);
- T" [7 S! K" f% |* Z, h6 C- Yelse if(k<array[mid]) j=mid-1;
3 M& g$ e% r9 p- O# t2 d else i=mid+1;* f4 Z( @: k# @( V/ n/ k5 r# e
}
# Y/ ?7 p) S& r* j. H0 N, Sreturn(0);
: D- t' l* Q5 u% p# e' U}</P>6 ^) T- x: y5 J' W6 @
< >/*冒泡排序法*/; N3 R0 t Q" Z( K) q
void mpsort(int array[]). ]0 I$ n# ^9 b( y+ Z( K
{int i,j,a;
& X2 o, P, D, ^a=0;# h: h4 o4 L. v+ [& d
for(i=1;i<N;i++)# ]7 l1 V: D5 p
for(j=i+1;j<N;j++)9 P0 W! z3 T+ j! d- [/ j
if(array>array[j]). U M7 `' t N- V7 Y
{a=array;' u6 @% S6 I" K7 e5 K
array=array[j];" e( S1 [# {8 o- V2 O6 a, y
array[j]=a;}& j+ E2 v- C# X
}# k3 ?8 d# _/ L; \
/*直接插入排序*/" }! [3 _, W( U2 Z6 t* T
void insertsort(int array[])
/ i; s! Z4 \! v{int i,j;: {- v" W, X/ Q. e1 p
for(i=2;i<N;i++)! s4 W+ @1 m( R1 v8 J
{array[0]=array;
/ z3 H* ?& s6 V0 bj=i-1;4 |2 b2 k7 H* }9 V4 _ O/ g0 d
while(array[0]<array[j])
0 {) }3 Z8 `4 G {array[j+1]=array[j--];
4 A5 d! h8 g* B array[j+1]=array[0];* n3 ^; O; `& S+ d. O8 v, m( i9 J
}
0 H( r- I/ V+ v$ S/ i C; e" y}' f7 G+ v0 Q W9 ~/ C
}
/ ?0 _ t5 n3 x0 }- @, X/*建立*/# G+ Q! ?0 Q4 n) E) w4 T+ P: a8 j
void creat(int array[])$ {' z. Y3 e9 F4 R0 d% d6 |
{int i;
4 y0 F" e7 O+ {; H+ I printf("enter the array:\n");
0 K- a( H5 o# A. u3 J o for(i=1;i<N;i++)% a5 {7 q4 x7 o ]( b. L
scanf("%d",&array);
! K) [% Z- z% a9 h}</P>% d9 z2 ^, R7 Y" Z0 D
< >/*显示*/5 T4 y# @& E( K. G0 O2 E
void print(int array[])
' b& p6 @; G7 h& W {int i;: _8 Z! T* |/ Q7 m
printf("The numbers after sort is:\n");
* W; n% r' f: b for(i=1;i<N;i++)
- u& L4 x! e0 Z printf("%d ",array);
: P6 A! [4 }, b" q% G printf("\n");( H- ~1 c& w' L
}</P>
+ f' s, n5 R: @- k; Z1 |( }4 { m% P< >+ o8 V& C7 o3 G3 L
main(): I. D9 J) Q4 Y
{int a[11],i,x,chang;
! Q. g8 H2 h, ~7 I1 n6 f# Z- ` /*printf("enter the array\n");
2 M, r2 B2 o& a! w- n* h/ Y$ ` for(i=1;i<11;i++)2 t; i; G+ J- t( q7 I p
scanf("%d",&a);*/</P>" m- z, o: \1 _# _, B: c. m
< >aga:
3 |( y( c5 |( M' k# N5 `3 I 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");
& Q& l* t% q0 z" E) @' J scanf("%d",&chang);( L6 l! D9 [3 T
switch (chang)
/ V2 f5 ]5 n( d9 n- P* O {case 1:
) f* P& p$ |4 g1 ]: Z/ | {creat(a);( Q$ V" g2 Q+ o# r# |( I
printf(" lease enter the search number:\n");+ e; w Z8 J& A
scanf("%d",&x);
6 X) W6 Q* j* b8 d$ C printf("The number station is:%d\n",search(a,N,x));0 B# [7 y, Y, V" S. ~* n
goto aga;: Q8 E* S' ?* B2 `
}
" @2 i( ~" w. x7 v case 2:
4 j+ ?$ r% G% N9 _( }6 c& Q { creat(a);
8 I! y, ~% w5 M+ } insertsort(a);, _) Z( q$ k# N- n6 m
print(a);
0 G" y; ?9 W' w2 v printf(" lease int the search number:\n");
, u: N1 \: l# C c- T scanf("%d",&x);6 x/ M. Y: `$ J
printf("The number station is:%d\n",halfsearch(a,N,x));
4 R3 i1 J* n/ J9 H goto aga;6 G/ t( d3 M. Q* s! i
}
1 E# C& ?$ p' J' I7 x0 ] case 3:3 d0 {# A8 }6 i
{creat(a);
+ a0 R0 `! Z# o& D& A insertsort(a);
+ n; a, a. o8 o* Z" Z) v print(a);
, H0 |0 |7 Y' j9 o goto aga;
/ z# i( d- @7 @+ g/ ~" ~; Q6 d }</P>
) {0 E; O3 \' b }# o: l< > case 4:
* \5 Z s+ z/ y; z9 X* z4 @ {creat(a);+ \! d0 u0 b `( O
mpsort(a);
. m+ X# w; S2 Y6 q; _. `" O print(a);" [ K k1 P$ J% f
goto aga;
" `: M, i1 Z2 ^ }</P>9 c! V& i) u- a/ G/ U( _2 S
< > case 5:{ printf("exit!\n");break;}
1 d/ d% B& X$ ?; c Z0 g default:{printf("Error!\n"); goto aga;}& I% z* v+ P* y! c4 c2 Q
}
' ? p: y, S2 S: H! M}
, U- d, L1 H# _# I) R
, e1 p5 a. V% ?$ b7 W 5 w; L" H: L& ~) `9 h0 z7 X
</P>2 c; x( o& p$ g; h5 x
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|