- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
& u- o$ D( ]: A( E/ |#include <malloc.h>% T4 q# H, L5 N
#include<stdio.h>; `/ _$ `5 R r: L+ C4 D1 l/ l# A
#define N 11- C7 Q* w! k5 _9 v- z
/*用监视哨查找*/
* X8 R% d$ l1 G% p! ^. n# Tint search(int array[],int n,int k)- J" ^- E. r; p i
{int i;
/ a$ z, Z m2 \! {4 e% l3 ?% { i=n-1;9 \2 z, e! P' Z: g
array[0]=k;- P6 C4 O8 u. ]- Q2 N# `5 Z
while(array!=k) i--;
! ?% j: _ T+ p4 H! Q8 wreturn(i);+ L" v, E4 s, Q) {1 O
}5 b" m2 j$ y( j
/*折半查找法*/% w, v+ Y$ g" U
int halfsearch(int array[],int n,int k)" f' i, u7 `6 t7 G
{int i,j,mid;
0 e& E l: C( f' Y+ V i=1;j=n;; M7 ^' d- I# ]- {# w
while(i<=j)- R) K- P% W) M" ^( [
{mid=(i+j)/2;+ x& r; A- R6 S5 t8 G; a) N3 n* ?
if(k==array[mid]) return(mid);
" |% x6 \2 ^* Z8 u/ n' s Helse if(k<array[mid]) j=mid-1;: R$ r1 a# V$ o( q
else i=mid+1;
% a' D# Z0 T( M1 C; e* G( o}% U+ c; Q! [# ]1 y2 V5 l; q
return(0);3 h2 c t/ q, a: h# W6 R, B
}</P>" d' v, h7 e3 W8 x% g/ E
< >/*冒泡排序法*/
: I V1 q0 J4 w: wvoid mpsort(int array[]): D- T2 b' s$ U2 {
{int i,j,a;, _) }2 T7 N0 J" O1 h
a=0;
! N# Y& _8 x& Y; F for(i=1;i<N;i++)/ g; M* l# D# ^) S
for(j=i+1;j<N;j++)- }0 {. `) C' y! c( _/ E& V! J
if(array>array[j])
+ ? Z- a+ b: C `) q {a=array;
: R L1 g: B' d8 O; B array=array[j];
; Q- o: P/ e- r$ B' _; {0 Z array[j]=a;}
' w @2 o' L% @0 H+ s( ]! I}
% l6 ]' W5 d, w9 [8 E/*直接插入排序*/
/ P$ z/ @# o3 u8 Zvoid insertsort(int array[])! y+ g4 {; A) ?- m
{int i,j;
/ I1 S' N. W5 O( k w for(i=2;i<N;i++)% J" {% I# h g$ ~* R: _, V
{array[0]=array;
, S' \+ w( _: x( x0 ^j=i-1;3 l3 x7 P2 A( @! {3 F; O
while(array[0]<array[j])
4 z/ I( m7 w$ n0 b: R% R. f `4 \ {array[j+1]=array[j--];
* ]& W# z3 X$ b- ]* v array[j+1]=array[0];0 ~; R" i0 f4 F; c
}
2 | ?; i. M% F* v- T}
# B7 o9 J9 V" Y* }' `4 p, F3 @}
; V$ X/ Y8 j! Y) `0 W) q& w/*建立*/: m2 Z- L9 q- g" W& R# f* G9 Z
void creat(int array[])( Z9 E) B. M. t) _( U
{int i;
5 J) E1 Y3 r" Y/ X' d% u0 y printf("enter the array:\n");
8 G( b% K4 b& C% ~- h for(i=1;i<N;i++)( o7 F4 q; L% i" \: r1 _! f# D; ]
scanf("%d",&array);' j& H1 P" A: U5 J" x
}</P>) a$ m) a, ], T4 U2 V2 l
< >/*显示*/2 ^ |! S* s) x; c }# B' t
void print(int array[])/ Z% \" ^. Y) Y, _- m. Y
{int i;9 p' s! w% H Z) p% t: z
printf("The numbers after sort is:\n");
& V# Q( ^! F% p* T for(i=1;i<N;i++)
& O5 g0 K- ^/ @9 L, @- n3 O printf("%d ",array);
) v4 Q) |% B0 R" G9 I& ~- E printf("\n");& \0 h( D+ L/ P3 u8 B) B7 V
}</P>
! x9 |0 i. m5 N# k< >
/ B9 m. g/ t2 l" k# M7 X2 ?main()! K8 t# f+ s/ O" R( N' ^
{int a[11],i,x,chang;
* [' r5 a- n- C /*printf("enter the array\n");
- r* B$ D0 k0 y- J8 D- j1 s for(i=1;i<11;i++)8 H$ N/ T% c1 F3 M" d* V+ |
scanf("%d",&a);*/</P>8 S4 C8 S9 t+ M& Y' S3 }
< >aga: C/ Q9 Z1 I* H! z
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");. ^5 p# _, p: r( N
scanf("%d",&chang);
( I( p( |$ G9 e2 {# b switch (chang)7 N g3 }! p$ G
{case 1:, s$ c3 R* `5 O4 V9 o5 G; k8 W
{creat(a);
( h9 R5 N. j2 A6 t4 i! A4 k, H" a printf(" lease enter the search number:\n");
2 [0 l% d. N$ |" G& u scanf("%d",&x);5 c5 b2 o! D$ n( b9 T( N/ z2 T" V) m3 g
printf("The number station is:%d\n",search(a,N,x));7 h' a- y3 Q/ O& t
goto aga;1 V/ O# w' E1 u- ]
}
B; O3 u# p1 x' M" {" r q: a& j z case 2:# Q/ |9 n* M, B2 N( f
{ creat(a);
, N) T4 J! K5 I9 g insertsort(a);
& Q1 K% W( O) R3 t. } print(a);
' P# w% ]1 `1 D! u E9 U+ D printf(" lease int the search number:\n");
6 e( x* x1 j1 P9 \' R: C scanf("%d",&x);
5 w- P. _. a# q/ G: R printf("The number station is:%d\n",halfsearch(a,N,x));
+ d/ D% x% ?8 k; J3 q& n goto aga;
, d# N& Y0 V( B }; L# X( w! o/ f. r2 {
case 3:
# Y& h" z+ y5 A. i/ a' } {creat(a);
, J1 e/ G+ {7 [ insertsort(a);
4 n7 }4 {$ a. [2 |1 V print(a);
# l% _& E% G( |- H1 L/ ? goto aga;
) H! l. s. k1 @' d1 r# }1 i }</P>4 S. z1 c8 ]+ l& z
< > case 4:
9 }! n* g) O* \( C {creat(a);
0 j7 [# J- Y% w3 P3 ~7 j4 l3 H& K mpsort(a);8 e9 n. M. O; i
print(a);; w d- U/ [/ Q, a# ]. m
goto aga;
0 I: W& \+ S/ u3 y }</P>
' I" f- m ?% r1 K1 W< > case 5:{ printf("exit!\n");break;}
0 q8 I5 W7 d9 o; h0 X6 R" d6 u default:{printf("Error!\n"); goto aga;}
! O( K! [# j- A}/ _7 \; k9 p( G z# y
}3 c; K: x$ e) p1 @0 ^
( T6 Q8 {0 l" ~; y {7 ^ ; ]" t2 O4 K5 i9 J. \
</P>' |; {9 O) \6 k3 z( B9 i0 I
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|