- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
0 a% P' z8 M E: }& e$ c#include <malloc.h>
1 Q0 S! Z( D5 i& Z# o* k' `#include<stdio.h>
- z7 p/ Q9 _# f$ k#define N 114 R/ O# R# P# C$ o' s3 Y
/*用监视哨查找*/
; `+ Y" c- J# J! h+ ]% h, J! N) \$ Aint search(int array[],int n,int k)
! C% r- l) ~; s6 l/ r( y' @{int i;, I6 t' M: ~/ H( I
i=n-1;4 E+ J( c7 ?! `9 F \! m
array[0]=k;( P* w4 {3 Q, q
while(array!=k) i--;# H& ]& S" O# p( s3 {
return(i);; Q# n6 m) }2 N% D9 |% K
}
$ Z6 r' C( B9 s4 S/*折半查找法*/, {7 c" T6 Y6 j! R C: K
int halfsearch(int array[],int n,int k)
1 T% x" _7 P. c/ c& Y$ L{int i,j,mid;
0 o0 g3 S+ [4 t; j i=1;j=n;
% @& I& V4 o) n- C% P: pwhile(i<=j)
/ p; R3 j& r2 {0 Y! E K{mid=(i+j)/2;$ n# J, I* g1 o) b7 g
if(k==array[mid]) return(mid);3 y/ J( v8 B* a7 o9 V& K
else if(k<array[mid]) j=mid-1;- v+ T! \. m5 B9 m( s7 A m
else i=mid+1;
, a9 J. _+ [, N6 M) I) e1 ^ x}
# B$ t# T- q$ @# c/ d! O2 Xreturn(0);
! t* R" W v. B& ]# L( K! w}</P>
% g$ ?# b( \* \$ z< >/*冒泡排序法*/
7 J5 w( ]8 M/ F6 W# U/ u( [9 _void mpsort(int array[])
0 G, I9 R8 U" N# x+ x{int i,j,a;+ O) D" ?( G4 x3 m) {( g
a=0;
4 x! }, h. `% ?0 z, L* S0 h6 ] for(i=1;i<N;i++)
# X. y. E# ~8 O for(j=i+1;j<N;j++)
3 b- c Z9 ?/ [, O if(array>array[j])
+ O. Q0 H( o0 ] {a=array;6 D" a6 k! P O" @
array=array[j];0 C" V& e# L4 U) o
array[j]=a;}
4 I$ u2 T- \$ C) k: @) I) n0 t}
: r1 d+ z" @+ a) g. w/*直接插入排序*/! T: h: B; M) O! N) D* q# H% ?; X& H$ Q
void insertsort(int array[])# C0 k+ @0 J$ B
{int i,j;4 C- B1 _4 B" y1 p& F, B; f- |
for(i=2;i<N;i++), ^. o$ m: h ]0 {, ^8 T4 ^ V
{array[0]=array;
% h1 x# @& O+ E$ J, K' k! Qj=i-1;0 Q, F* U% C& \. ~& r" c; ~
while(array[0]<array[j])
& l3 |5 F9 A. C, k {array[j+1]=array[j--];
2 y+ s4 {% t3 l* d$ s6 | array[j+1]=array[0];
; n3 m2 k9 @) _6 M( K+ c}
! A: Y1 ?: R) ^+ [) d6 G. d}
4 o2 W# ~5 g; X) ~6 E3 R; G}
1 x. h- T; R, R2 `/*建立*/
+ Q9 s2 K" \4 N' ?( hvoid creat(int array[])# w% q- [* L+ k4 h4 e
{int i;
# b/ N6 F- d5 f' L' I; `6 E printf("enter the array:\n");
, }( J' W+ r6 I* O n for(i=1;i<N;i++). o2 ~$ r- {" r$ X' j( S* c
scanf("%d",&array);5 q& N4 O9 h4 R3 ~1 b
}</P>- T3 q( B. G. Z& I& V) ]% o2 T
< >/*显示*/7 M# U* \8 n2 R" ], ]9 ^ @
void print(int array[])
$ _$ u# X) Z0 [ {int i;
- s+ F6 q+ @. D8 e# F3 w! v( D$ u# A printf("The numbers after sort is:\n");- X$ b+ `4 f! z( f
for(i=1;i<N;i++)
# R' Q3 M c- u* Y, K8 e1 j printf("%d ",array);- k- b7 c7 r7 x! p, E
printf("\n");- p) N" p! Z# `; T& f& v
}</P>
0 ^$ ^" C3 y/ e8 E< >' J3 g; t% K7 a9 g
main()) `. R8 M7 [# c6 g" N' N" @
{int a[11],i,x,chang;2 C1 w6 N5 n8 a' K' C+ R
/*printf("enter the array\n");
% @( U8 S1 M, h& A6 S/ b for(i=1;i<11;i++) W4 M3 ?9 {0 s2 q6 L" ]
scanf("%d",&a);*/</P>0 o e$ X' i" p9 j8 w; U/ I6 ~% W
< >aga:. I4 o$ k6 {+ h% 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");
1 k# _ v+ _0 T8 p/ \ scanf("%d",&chang);
& T4 D [/ x( ]5 C% ]6 Z* b c switch (chang)" g# y* w0 e# _# E e0 |' Y$ I
{case 1:
' @' u$ s9 J. M4 x- m O s" s {creat(a);
2 @1 _+ I0 ~ c$ p0 |5 V printf(" lease enter the search number:\n");
) P3 k' k/ M+ D) v. ] scanf("%d",&x);
: x- e2 @6 V+ M5 J/ I# \0 f4 f( z printf("The number station is:%d\n",search(a,N,x)); k$ q8 A. J( v. K( r
goto aga;
* `# A( b, d+ L0 T } q% q0 a' M9 v P* S$ B) a
case 2:6 ?$ Z; b+ A/ k5 ]9 G6 Q" O
{ creat(a);
1 R3 p$ P# x6 }! k& V, x- N6 Z: U insertsort(a);
5 i) ]+ L8 N4 e: e print(a); q" M" Q8 c {" f
printf(" lease int the search number:\n");
0 P. M; \* b' h8 z, H scanf("%d",&x);/ N" ]8 n8 @& {0 c6 l; F, f
printf("The number station is:%d\n",halfsearch(a,N,x));
2 l" w6 d+ x9 @' V6 _+ W# {4 z goto aga;. a1 r$ K5 |4 a W Y
}
; o9 N9 g+ t. u8 k case 3:+ @. }+ h$ r7 l3 a+ ]
{creat(a);
' F( H) o% H, L& O* l0 o2 \9 | insertsort(a);
: ]6 h1 z# B' q# d print(a);( }! ^- k! s4 ]- `1 q
goto aga;
, E! n2 Z& c4 A9 | }</P>& V9 [) M Y: z! G3 ]
< > case 4:% z$ a) G8 I( [0 l& o3 ^4 |( S
{creat(a);
. e# C( L* W \& l mpsort(a);
0 q* `7 \) r' q% [/ w' h% z G# l print(a);# E% M, Z% ]6 w% x3 g0 A
goto aga;
; R5 d/ x- Z- B' L$ E% d }</P>
( s( z+ m' Y9 z& a' ]. E< > case 5:{ printf("exit!\n");break;}
& a$ @7 @0 u% S+ d( u9 x0 u5 }) B default:{printf("Error!\n"); goto aga;}0 B8 z+ o# D4 t8 t% f' M
}
- R# F# A; ~* r% P$ k}
3 \/ \5 D3 L; C4 ` ) @, ~" l! u2 v. J$ e3 Z4 M) C
, d$ I% F- J( p# j! d
</P>
) L1 Z* i6 v& Y: L+ G[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|