- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
8 X. F) Q7 n5 C7 l5 V#include <malloc.h>- a2 ^$ ?3 a- y4 M9 h$ \
#include<stdio.h>
/ i: R% e- q9 k+ t* S" r#define N 119 W1 `! c! W. f4 {
/*用监视哨查找*/
: P$ v4 S/ ~( w% F( S1 I$ ? b ]& Bint search(int array[],int n,int k)
2 m, X8 S7 K( P6 [{int i;
i' e5 W4 v q+ X' V i=n-1;9 e5 g1 y( M0 y+ G, v
array[0]=k; G; D5 B$ O$ B I
while(array!=k) i--;2 \+ m. n/ K# j* A$ G# F0 @
return(i);
7 g) q/ {- ~) q q}5 R0 Z6 q! s0 t7 x% E4 u+ x, l: i
/*折半查找法*/
9 R- J3 f$ A+ `* u5 G2 H6 Aint halfsearch(int array[],int n,int k)
$ `$ Q5 D9 C6 w3 O& }) x{int i,j,mid;7 y; ]5 d% |' @ g# z7 }
i=1;j=n;$ l7 l( N0 x. m M/ x8 q& ]9 R
while(i<=j)
3 v. F$ Y* s8 Y$ \; k6 e{mid=(i+j)/2;
7 g6 r, h1 F8 X1 ` if(k==array[mid]) return(mid);) Z( f4 A$ Y4 q4 [, ^7 f6 ?6 M+ i
else if(k<array[mid]) j=mid-1;
! o* i" A r9 J* D: j else i=mid+1;8 _( M! O. O$ _& N
}
. {* d: q# X4 ~* F8 s* ]return(0);8 b s' v- z$ N9 d
}</P>
; s; a& L& X1 W9 r< >/*冒泡排序法*/5 d l+ R. a9 O' S' U
void mpsort(int array[])2 X; ?9 U' t. f2 Z/ K/ e( t
{int i,j,a;
9 F! V% x) L* u7 O8 F) B3 ra=0;
& M; N2 ]7 J6 q E9 S) i& D. _0 K0 S+ ~ for(i=1;i<N;i++) X3 r v5 n! |3 [) }
for(j=i+1;j<N;j++)( c2 \* V" d/ \) C' X# _! F/ [ h) b f
if(array>array[j])
# l3 U4 C/ n- w {a=array;
6 a' \9 g9 h3 _5 n array=array[j];! E) T% S; Y2 ~% u
array[j]=a;}# _5 s# I0 Y# ~1 h
}8 j& q) U" v* E2 j5 S% C% S
/*直接插入排序*/
" _ D- [3 `7 R/ T& g0 `void insertsort(int array[])
0 W" U9 X# d/ U# {3 |8 }{int i,j;
! F M' Y- y: E# d$ T+ { P for(i=2;i<N;i++)* X) v$ K% p* n; q7 s
{array[0]=array;
5 S9 h) P m- ^5 A( Zj=i-1;
+ T' W. }! n& a6 J/ P1 J; Fwhile(array[0]<array[j])% g# `( Q' |0 |: V; U0 q+ Z( b
{array[j+1]=array[j--];
+ X/ `4 ]/ u6 N0 U; x2 j array[j+1]=array[0];
$ C7 f4 Z# s+ w" W}
1 D6 [# G4 O/ l% g/ x7 T}
% D1 L' k1 y2 h% S& V}/ b( A5 P/ `7 C/ ^
/*建立*/
# }# h, Z, q# Y/ P8 O. u" i3 [void creat(int array[])9 P' V# L. T% b: ^! @
{int i;3 u6 c* l4 N+ R0 c5 s6 [
printf("enter the array:\n");
! f8 k7 h% k8 c( {* l; r for(i=1;i<N;i++)
8 m0 ^5 U- u) q3 |5 U: R( o scanf("%d",&array);4 Q7 \7 l: q# f% n' C
}</P> \: }# d' v( x
< >/*显示*/- i& w$ c* k' o0 d1 y$ L
void print(int array[])5 } \/ m- T* S+ q, ] Z
{int i;/ C: g% P- Z1 l- i
printf("The numbers after sort is:\n");1 Z$ }3 o. N$ K. d y
for(i=1;i<N;i++)% r3 [. G) @2 V" J4 L
printf("%d ",array);' {0 T' N5 V! @; m' a
printf("\n");
4 G; S3 K q2 ?* H8 S2 F }</P>6 N1 \7 w0 X3 |& e2 P0 A" a6 ]4 m
< >5 `9 g" T, b3 Y( w7 v! D% S" p
main()( n g' P) Y1 B: R/ T# W5 {4 {
{int a[11],i,x,chang;
6 l' Y# @& n5 L" p& V /*printf("enter the array\n");
! n8 y* I" B% E( | o7 S& V3 m& Y for(i=1;i<11;i++)
4 @( G0 u8 d8 |+ T scanf("%d",&a);*/</P>( L2 r6 o! J9 t
< >aga:
' h$ {1 \% h. H' }% N {* C" \ 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");
, e% s$ V0 `) x scanf("%d",&chang);/ ~8 ~$ `6 K5 c% {/ r
switch (chang). f* S) P& @! Y2 H
{case 1:3 ?: }9 Z2 I$ d6 i
{creat(a);, }9 r+ l, k; L9 Y7 \2 A$ l' p
printf(" lease enter the search number:\n");
7 I, P0 A" C; L7 p scanf("%d",&x);
) n2 J. v3 C& Q+ [! v5 Y/ l8 A" d& r printf("The number station is:%d\n",search(a,N,x));
) ]# k6 g, @ u) _& f4 ] goto aga;
4 n* h# w' p$ k0 G }
3 P* t5 I. ]% o$ K D/ w case 2:
' O- S+ e; b' A! |+ C' B { creat(a);
3 j. p: g: ~7 P! }3 r insertsort(a);
8 d4 @; ~1 ~1 v. \0 t: n @* R print(a);
' S/ e* v: ]4 j0 M: m- b$ ] printf(" lease int the search number:\n");
$ o7 l! o+ o9 f" h scanf("%d",&x);
# |9 ]/ E% c& ]! P* X, S printf("The number station is:%d\n",halfsearch(a,N,x));6 I# X: M) o& q6 q L
goto aga;
9 T$ K& K; s% \% ` }
! P* b8 A& D) r7 g+ q# K+ g case 3:% d1 P8 r+ n3 s0 p3 j, D- Q, Y$ ^0 o* |
{creat(a);9 `7 S5 A2 d9 p" k; }
insertsort(a);
0 E* S/ U% D& H0 R3 A: z print(a);3 f& n2 \/ D; S; B% `' Y* C4 E
goto aga;3 C$ ~+ m, U Z: [
}</P>
) w/ A- o4 ~8 v' a9 k2 [: d$ ~< > case 4:
w. i5 ?% x7 I; y+ X {creat(a);* s: k8 a# }9 t) c" A# {; t$ `
mpsort(a);
' T. R% k% R8 Z7 e) I print(a);8 p4 J' Q: U2 K" c+ Z0 O* O
goto aga;
# c4 w/ p9 m: G! K8 A: I6 V @; X; [ }</P>
6 A$ Q& o% F2 J h< > case 5:{ printf("exit!\n");break;}
$ L6 i, t6 l/ H4 v1 C; p! L default:{printf("Error!\n"); goto aga;}' V8 P# t1 K, A: Y
}
) F0 B n5 q- A- ^/ o! i3 Q}
) J4 v, U9 L9 Y5 |0 B! v/ C
7 Y0 c2 C# j5 a6 _ * T( i2 y' O+ W& r4 J0 O
</P>
; ~5 b! ]# J# `/ v[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|