- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
4 m( T& R/ ^# c! t#include <malloc.h>
3 E3 j8 z' y( X9 I! ]/ ^4 i2 P#include<stdio.h>
2 o! S. x% N' R% s6 ^; g/ G1 X. i#define N 11# L4 M8 f: t, `% y' z( n+ ?8 h8 \
/*用监视哨查找*/
2 ^( K/ D' I" R4 T6 @" rint search(int array[],int n,int k)
0 u8 {, {; }, d2 I{int i;
' {7 } f3 a6 j, t& \& `$ C, b2 x! j i=n-1;& I0 G s; N9 y1 H5 x: C1 b' P
array[0]=k;
6 Q' c( g. l; dwhile(array!=k) i--;! N$ |% R- Y% ]1 z9 D) a
return(i);
& W' S0 t c4 h/ h) U; \( s}
- Q% a% y" y, T6 r/*折半查找法*/
% e' i9 B+ V9 R# |! x0 Oint halfsearch(int array[],int n,int k)
* U1 }& l& A' l8 P/ c% E$ K{int i,j,mid;
% A% m( [1 P" W$ u) B i=1;j=n;
8 I! l5 f7 ~% t. j- z5 X' l% P% @while(i<=j)" r! r: l/ z- K! L) w9 P+ w
{mid=(i+j)/2;
8 e. R+ ~$ T8 {8 r( v/ c6 b; d if(k==array[mid]) return(mid);5 e M. {6 b( X
else if(k<array[mid]) j=mid-1;
6 D# S5 g& |( @ s) N& O: Z else i=mid+1;. n2 D. |. l9 J& z W+ t9 m9 l
}7 H @3 O# Y% g; O- B) e
return(0);" J: @" w3 a( w8 O; ]' h
}</P>
1 f$ u* z/ O( _' [2 J4 I! N" H! n, l< >/*冒泡排序法*/$ p2 y9 ~% Y- Q0 i: @
void mpsort(int array[])
& A0 [) e8 A: D. p2 D, N; J{int i,j,a; o& R( P d7 T+ G# Y: H& Y2 y
a=0;' [: F; \4 {4 T8 E
for(i=1;i<N;i++)! z' c$ [, [0 E/ p* ^! U
for(j=i+1;j<N;j++)
a% }+ @$ Q( n9 f% }+ q if(array>array[j]). }$ S- i# i p" ]) x* e T, [
{a=array;* F: t6 f" z2 c* R9 n* A2 @$ G1 { u
array=array[j];
1 W- @& j4 Q- S+ B7 i4 B array[j]=a;}
/ M; [& x. h2 w2 d- z}
8 n9 E& ]* E' {! F$ ]" r* y/*直接插入排序*/+ d" y! d1 Y7 e2 x$ @% |3 O
void insertsort(int array[])
; x% H9 n% y5 c2 F5 |{int i,j;
& i, O0 x0 G6 g! [( p$ T for(i=2;i<N;i++)4 {: E2 a8 Y) u) S) {/ N; c T2 E
{array[0]=array;
5 s0 }& _; k3 [- h( x2 \' \j=i-1;
2 W9 Y7 Z0 @. O) l" f. kwhile(array[0]<array[j])
' i# h2 _/ p0 G5 d& T {array[j+1]=array[j--];# I5 K( K, y C$ }/ O4 z! b
array[j+1]=array[0];
& Q* W; }* E& w% R+ Z}" x& G# T, A0 Q( [6 E5 r" l
}
+ y, [& X$ ?0 l}
5 h$ c8 H# X' N; g6 e+ H1 c! s/*建立*/+ E" b% r6 _( h7 i4 I
void creat(int array[])2 F3 ?) B5 I" H. k) F- W/ t2 r
{int i;
1 Q4 q) Q6 b, G2 j) D, r1 e printf("enter the array:\n");% b8 X$ J0 u& `) G- E( Z, Y8 _, Z
for(i=1;i<N;i++)
3 M) O4 _! N. p& ?% h- _% T scanf("%d",&array);
( _, q* q( J }; d' M' o}</P>
. o0 e+ y- h# v# O" H8 |< >/*显示*/2 y1 G- E. H; l* q$ h2 g) R
void print(int array[])
: C& h4 R$ S! k- i7 `5 @9 X7 ? |3 e& o6 \ {int i;
i9 P# G. p" I8 S2 h! {1 m2 W1 H printf("The numbers after sort is:\n");4 {9 k& J' I" j7 s* `, x! z; V0 M
for(i=1;i<N;i++)
6 [) a) x9 K9 O* d- E* M5 g" } printf("%d ",array);& \! E* j: b- K' F7 u( r
printf("\n"); D+ K9 K' Y+ j$ y( }/ U7 u4 u
}</P>' n( w3 c& o8 }7 N1 J: a
< >
0 `4 Q2 q2 ]6 X9 Hmain()
, V; K( U3 g, I& j{int a[11],i,x,chang;
3 `8 l+ x& h, d: i /*printf("enter the array\n");3 g9 E' z7 e! @) N
for(i=1;i<11;i++)
# J* v9 i, H6 b8 r& i' I' M5 i scanf("%d",&a);*/</P>
& K* U! d1 x6 d< >aga:* `8 W6 c+ k: s
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");. R; ^! a" ~: z! t2 R2 i. A7 K
scanf("%d",&chang);$ |" V9 z9 d4 }- w" ]1 ?* \
switch (chang)
: Y7 f8 P; v. C( k {case 1:
: Q3 u/ i4 Q4 {; l; @- i {creat(a);0 I1 D4 M( |% K) l( k( R
printf(" lease enter the search number:\n");1 c& h9 w1 a) ~8 l. N9 j
scanf("%d",&x);1 e# I; |7 ?" y& k, i+ d' h5 P
printf("The number station is:%d\n",search(a,N,x));
) R7 L6 O% W& b. i4 q ?/ L goto aga;3 b) U9 x! R/ i5 E0 l' d: A
}9 X, z/ d+ L" i# W, S2 t7 z
case 2:
! F& v& d+ f; h: P# `! i { creat(a);
& G2 `- E7 K* {' _ insertsort(a);
. k/ B$ J* b5 T print(a);# j% O4 @8 S2 X' y; j3 O
printf(" lease int the search number:\n");
& x1 f$ q! `% J) V3 U scanf("%d",&x);
; ]# i5 X2 Z, \& p printf("The number station is:%d\n",halfsearch(a,N,x));
. t; Y! x \4 q# a" Y' Z$ o goto aga;
7 \( r; d1 ]' l3 |0 U }
1 b; H) [2 }( Y( c/ l* ^ case 3:, P1 `' N; I: h4 G" X3 Y
{creat(a);
" t7 _& Q( O, d- B5 H K7 N insertsort(a);" d# \) n. a' l" c
print(a);: n9 y, R+ t& {
goto aga;; q1 K: R+ q) K. o6 I G1 s
}</P>
! V5 f/ v+ O4 o: |: I< > case 4:
1 D! y/ w4 O3 X) J, P {creat(a);
* c1 ~* ?8 _( d D& Y8 P- ~; K& n' w mpsort(a);: b+ n8 l" f9 q* h2 b
print(a);+ \+ b& U: y6 }1 b
goto aga;
Z7 I0 `4 O: g4 I }</P>4 m9 w: m% A/ C( p, X# r7 |" N3 D
< > case 5:{ printf("exit!\n");break;}
5 e* r4 K5 }( ^# \' b2 z, M default:{printf("Error!\n"); goto aga;}
% q) Z" W; i2 W, L/ T }9 t4 `8 @}+ B" c/ |3 F% C5 l& V% r) R6 C
}7 B; U5 W+ t# p
; \0 C" x- O! `7 d
' u, U8 t* O- z- o* S w</P>
5 W& ]; B1 `+ o e/ T7 A6 g& d[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|