- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
1 X5 x9 h- B7 P% z, p- g& h2 ?8 {#include <malloc.h>( O; T$ H6 `8 k! W6 s0 g
#include<stdio.h>6 K$ S5 r# h0 F
#define N 11
$ g0 o3 r( C3 X+ w$ ]9 ?* q0 K/*用监视哨查找*/
2 w4 A7 X! P) C; a# Oint search(int array[],int n,int k)
# r; `" I& e# J- G, P& l{int i;
9 {1 U$ g5 L4 p8 B* ^+ S& v i=n-1;
, R# N ]( w, Q' w1 barray[0]=k;- Z4 J: j; F- u+ p" r
while(array!=k) i--;
" V0 C" b# ]( |9 ?, [return(i);, @2 M% u7 }) m* Y9 L" _1 N1 S
}
. V6 J x' l6 }1 B5 f/*折半查找法*/. _# }2 _3 D, [3 q, @ l
int halfsearch(int array[],int n,int k)& e' F, m( h5 V( Y
{int i,j,mid;
: b0 [, e# F$ L J i=1;j=n;
) Z% f F3 q' Z4 f6 r) [& [, fwhile(i<=j)
8 ?1 _, q4 o) b: U/ Z{mid=(i+j)/2;
4 w/ r: b% m7 ? r* C if(k==array[mid]) return(mid);
2 A4 z2 ]8 x6 Delse if(k<array[mid]) j=mid-1;
- {, H# z' h) t# ^+ b1 A else i=mid+1;
! t9 o0 w. z+ o3 b1 y}* k+ D; I- F+ y
return(0);6 r' Z. _$ Q+ ?6 N
}</P>
: y; |3 A& i2 \: a< >/*冒泡排序法*/
9 y& V- Y. ]; T$ G- v5 J) k* z4 _void mpsort(int array[])1 ]. }. s8 i* T) i8 x( r! x
{int i,j,a;
( G8 b, U6 P2 w* o- i- W0 Q. da=0;
) Z+ s3 X$ o2 s. u for(i=1;i<N;i++)
# S) e S" c! T. | for(j=i+1;j<N;j++)% F2 B. @9 ^& }& y% `* N. z9 n
if(array>array[j])7 ~ s! q2 B9 Y4 m
{a=array;
" x3 p( ~+ p* m( \( g+ T" V7 U array=array[j];
$ @' i8 W2 [" Q( V# K1 G0 P array[j]=a;}
, [& j4 J2 O" D# l0 V}! l9 O; f9 @- K& y5 w; M& d
/*直接插入排序*/) g% w: {8 B; O |. W
void insertsort(int array[])
" G' x- b) ?* }1 C$ y{int i,j;& M8 R" o. W* t8 R& Y8 A! R
for(i=2;i<N;i++)
2 C, u) D) R/ e8 q {array[0]=array;0 x- l$ f' L4 Q$ Q% w: W7 T/ D5 i
j=i-1;) @/ `- j1 i; E8 Z
while(array[0]<array[j])8 H$ H8 f9 M1 R Z$ b+ J
{array[j+1]=array[j--];& N% N% {- `) [8 v
array[j+1]=array[0];
4 ]- n' d. j( u( I5 K8 O5 u8 [}
& X. c1 G. Y% H}
: [( w9 f9 q3 m5 v2 m}! R) _. @3 D8 Z! v
/*建立*/
! l0 Q/ ]6 o( b7 x, V% ]+ Lvoid creat(int array[])
( \1 H& l+ k& s" Y{int i;
9 B4 K. M# k0 ] [ printf("enter the array:\n");+ h4 _9 r1 m$ H$ u0 A9 B
for(i=1;i<N;i++)
$ l/ T+ I" k6 B7 e" }9 S scanf("%d",&array);8 D$ l, {* X' a" x
}</P>7 O- J$ Z6 f( ~/ k! E j# G
< >/*显示*/ ]7 X8 @* J- w# v, O
void print(int array[])
) k9 v7 Z: B& b, w {int i;
; a# O; U) z$ X printf("The numbers after sort is:\n");
. g/ r# g ^ `9 E# n1 q2 w for(i=1;i<N;i++)
/ v: g5 ~ g7 Q/ D printf("%d ",array);
8 s6 H& n" d- h6 F/ W1 S printf("\n");6 P. a! {1 p& Z V9 g
}</P>2 E6 l, g2 X j. N: L( j6 V
< >: W% m' n- w1 _) w5 @
main()
8 N. F3 x: V; V4 Q{int a[11],i,x,chang;* i7 D, U( O3 p. w+ M6 V
/*printf("enter the array\n");! k1 a7 Z' y; K6 K& h/ H* z! K; _
for(i=1;i<11;i++). H' [+ V1 G7 U/ D
scanf("%d",&a);*/</P>
- b# j6 H; q! S< >aga:/ [* D$ ]9 _3 e& p9 K }: Z; g
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 o# B a0 D$ ^" e$ h
scanf("%d",&chang);7 h0 m9 b4 w+ h( b, d0 ^
switch (chang)5 P- C0 k, A: M2 q
{case 1:: \) T! ^) K& F7 r- X+ p( X& f2 f& a$ Z
{creat(a);
: K/ Q6 u3 z( d- L printf(" lease enter the search number:\n"); o+ g; v' ^6 C) Q/ U0 S
scanf("%d",&x);8 F" f7 b+ Y( j+ q% r# ~) I
printf("The number station is:%d\n",search(a,N,x));: X% ], O% |( j3 z" ^5 [5 }$ W
goto aga;
/ f4 n x% k8 ^ }
n# v# ` J \ case 2:
7 B- q) p+ x$ V { creat(a);
$ U2 H9 l3 o: U q" u* R insertsort(a);
1 J% ?! N8 I3 l+ @! E5 t( F8 I print(a);
# g4 H1 Q6 i) Z& p p* b- u0 L printf(" lease int the search number:\n");* R5 j' i" K' e/ T, k$ A6 J
scanf("%d",&x);
$ S: K/ P: d! ? printf("The number station is:%d\n",halfsearch(a,N,x));
) h. e/ B7 S, T7 T( d goto aga;
3 P! H9 I6 J- } }2 c$ Q6 a/ b% b) }" b
case 3:
4 L% o# V: _/ _ x/ F/ |; A {creat(a);
6 h2 g8 l0 e- h+ Q+ a6 H insertsort(a);
3 y4 K3 r/ P) e' d# w: k; p+ } print(a);$ k. i' } b; M% q& b8 |. p4 C: [# |
goto aga; Q2 W; N9 n6 B# `0 S6 \3 j
}</P>+ H+ `- x: \2 ^( @
< > case 4:! S8 X, ?! u% l) v
{creat(a);
1 P. n) H( _2 e& y, |- s W$ ? mpsort(a);
. P" e* v' z/ w4 y! K1 Y: I- n print(a);1 N! n1 h" A7 N8 S4 n! i
goto aga;
# |4 Z) x/ D0 K, o }</P>
/ b6 T* t. p6 C2 p1 s' ^2 {8 B< > case 5:{ printf("exit!\n");break;}; ^* ^) z5 l* i0 k* O# }: r
default:{printf("Error!\n"); goto aga;}& v) K. Q, A4 N O% \2 b6 y
}% h9 u+ I& W! A: _; e( _3 Q
}
3 J% ?( U. p2 d2 F6 z
( _$ y; \* [1 H/ _9 @2 [ 2 d% ^3 ~. O1 d5 r
</P> f! L( y F0 u
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|