- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >4 T% Z3 e. k* Q& X( F, {9 a
#include <malloc.h>
% K& X6 z2 X* z2 Q4 V7 H& I i9 T$ I#include<stdio.h>4 V- K& @/ x# b: D
#define N 11: ]5 f( w! C, ?
/*用监视哨查找*/- P: k' Z5 S2 H' S/ N
int search(int array[],int n,int k)
. Z# m* ?$ Q- A( c/ k{int i;1 c) N/ ?& z1 R" w( ?" j1 p
i=n-1;
8 u) W% C/ ]9 w1 barray[0]=k;# y# M. D- t4 j1 l+ |) H
while(array!=k) i--;
) G" ^5 e- q/ S9 p: n7 Y# yreturn(i);6 M; g: d) z$ q, {. B2 C7 z2 A* c
}( \+ L: c. [4 ?' {! d1 M, l' t
/*折半查找法*/: H( |. V4 w7 _+ K: ~+ ?- K0 a
int halfsearch(int array[],int n,int k)
+ b2 y/ T$ ~: n: O. [{int i,j,mid;7 O! [. I" V2 v# U
i=1;j=n;7 f+ \* [" Y/ f0 N! }( K2 V
while(i<=j)
& F1 Z: o% W; p1 b) w{mid=(i+j)/2;7 F# h4 b+ Y; L( `$ }# _% y
if(k==array[mid]) return(mid);
; M: n* I( d; }8 s. Nelse if(k<array[mid]) j=mid-1;
1 h% ]- k, b7 C% J else i=mid+1;
! d& _6 G8 T. ]/ p, P5 u}
! a3 t3 _- d' _6 j- P ?' y: s) areturn(0);+ g2 }+ D7 C" t) P k- }
}</P>
( v& g1 S% a' g! P4 _. d" F9 k1 P< >/*冒泡排序法*/
5 k3 q5 k; k! I/ q; R, q" C Lvoid mpsort(int array[])
, D) Y' D, j+ ^; t6 G9 r$ V{int i,j,a;
) G; }9 f: _2 @( F* R4 Z8 S' b( Ea=0;
- ?, A$ }0 l' p% I2 A5 Y for(i=1;i<N;i++): x% N7 e/ D: T! a, G
for(j=i+1;j<N;j++)
, ?0 a# v; B- _8 y1 S" a7 q+ y) t+ c if(array>array[j])6 B. J& i) d9 N0 j4 z
{a=array;& O0 p3 `- M; O) g- R
array=array[j];4 V: P$ }" n7 ]; z; u
array[j]=a;}
) a0 h7 y1 d' M" ], ]}
- H8 _% c6 m' y* J! [3 ]/*直接插入排序*/
/ [0 n! ^9 K5 {* {& m( t( h# svoid insertsort(int array[])
5 Y& j: z" ~6 U' S{int i,j;( r! Q! p9 n# i4 S3 M$ p/ K' K
for(i=2;i<N;i++)9 {+ P+ Z, }. U. }
{array[0]=array;
3 r9 v6 I8 {# K' w- G yj=i-1;
* o" \9 Z, U; e Mwhile(array[0]<array[j]) H7 q' L, r0 h
{array[j+1]=array[j--];# |5 K, b; t3 i# K ?0 G
array[j+1]=array[0];6 }6 n2 A- D9 G
}* A$ m3 V1 n- [5 B* m- M3 p9 W
}
8 }- {4 A5 }- {5 U" Q4 d}' @% Z0 u, Z0 ^# e, a" z
/*建立*/
; [$ G6 S( r+ c0 b3 t" b# tvoid creat(int array[])( i' @( k& X" ]: e6 d- L0 k
{int i;; \: F) w) I/ w. n
printf("enter the array:\n");
7 a8 a8 d6 y4 z J l for(i=1;i<N;i++)
6 X9 \0 K2 d; p, j3 F' w3 | scanf("%d",&array);
' c$ W) H, `, z' u( ~( k+ a}</P>
& P: ~& @( o( `+ ]< >/*显示*/! E* H$ q7 b; m6 `
void print(int array[])
0 ~4 u6 z f$ Q& w+ I {int i;2 K0 ~. P- {; Y0 U6 }! L% c
printf("The numbers after sort is:\n");+ Y# R3 Q9 e, Y, A) \* h
for(i=1;i<N;i++)
) Q! t/ ?- ^: V) X1 t7 S* x9 g, G9 { printf("%d ",array);' H: d; Z* }! B2 e
printf("\n");4 P: A7 b3 ~1 {4 X$ B, D+ Q
}</P>
" Y3 H9 j. Y' N6 E6 m< >
8 c1 \" b# S% K7 c4 I+ \$ Jmain()
5 U) Q$ v, ~" y6 }{int a[11],i,x,chang;- j- u2 t- K6 k
/*printf("enter the array\n");
. v6 W, ~: K& q& F for(i=1;i<11;i++)
0 N8 J. z% ?- f- s5 M! _ scanf("%d",&a);*/</P>9 q0 K8 |$ D: |1 A+ X& X
< >aga:0 T: C$ u# ]# s2 k$ A; A& J i0 u+ \
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");+ p( _0 i( {# R9 Y
scanf("%d",&chang); ?- H+ _$ _$ h& E1 E8 d( M: M
switch (chang)
. N0 ^$ i# D0 o* N6 W {case 1:
6 r* X+ y& Z ^* j( l ?$ b+ T n {creat(a);
# O8 q& k1 e( y/ R6 O* x4 X7 e printf(" lease enter the search number:\n");
1 R, _& Y2 \1 o2 U _0 ? H$ F& [2 L; s scanf("%d",&x);* h; F& w0 N4 P7 E: H3 x2 _2 o4 K
printf("The number station is:%d\n",search(a,N,x));# j; ^* A# Z; }) y) l
goto aga;9 i' r- a+ D& t/ e) j3 Y
}
/ b, Z9 z+ I' g1 @ z( ` case 2:
9 i0 @" T* D% h6 P1 ~6 X { creat(a);
; d$ }5 C, z/ N0 m insertsort(a);
: N1 W3 D# K; h8 R2 C/ ] print(a);$ F+ b- o5 }" |; c* H; J
printf(" lease int the search number:\n");$ `( G( s6 ], b4 S, E+ x! g
scanf("%d",&x);
. C% _$ ~7 B6 C' g printf("The number station is:%d\n",halfsearch(a,N,x));4 I" y [+ b( {9 k3 t- J
goto aga;
, H: t8 E) y9 I9 x }
9 H6 I3 V% \' [" Q5 V D case 3:
: L8 ~/ R3 M* h) [$ _ {creat(a);; ?; T0 A% J5 g {
insertsort(a);0 k: f( U1 f0 Y/ _! O% r
print(a);
, a( L1 J# f/ S, k. q2 F goto aga;
5 a. ~) j9 T6 h8 I }</P>
* J' W5 k' R& L0 N, }$ E< > case 4:
( L ^0 W! R0 ?) V {creat(a);
4 S3 X7 a1 \' ] mpsort(a);
" F w4 a( g9 O t; { print(a);/ ?2 e! N2 x! A# }# h6 u
goto aga;
3 {6 ?' p& Z. d$ } }</P>
3 h9 ]+ G2 [. K* ^/ ^2 j< > case 5:{ printf("exit!\n");break;}
4 G4 p9 G v' I* \, ~* ~* H2 c6 U default:{printf("Error!\n"); goto aga;}
- l9 `) K9 i/ r5 R8 v& w* ^}' A- F, N& k- E" F8 ~1 x% a/ ^1 c; e
}
E1 }% D2 S$ w O/ y2 H, ] 0 h4 s* Y0 g6 G+ ?8 |4 C" @# o. C
! z! ^) \% d! a1 {& N4 h# r</P>
1 J1 \' i9 L; o* n- b6 B' Z* [[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|