- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >/ W* q! E* |- L; j8 z. X
#include <malloc.h>3 X* o# Y, c' c1 S& r k* H! A
#include<stdio.h>0 y- a& d8 `& o7 C5 D( J" y
#define N 11
* O9 F0 m' }3 H G% p9 O/*用监视哨查找*/
' f* K5 a) a& J3 |" tint search(int array[],int n,int k)
+ s# z) @8 X' J1 Y1 G5 |{int i;) U" ]6 w7 @& c# ~
i=n-1;9 F+ G7 S( p) Y' Z" x; Z
array[0]=k;
: a5 P( `/ J6 v4 iwhile(array!=k) i--;
: y7 y; J! h# _( ` preturn(i);
. F$ Q) I# R6 Y2 _2 ?* h}* m% ^; ^0 W9 K4 L8 E" k$ Q
/*折半查找法*/
# Y& q# g5 {1 |; C5 vint halfsearch(int array[],int n,int k)
9 q, ]" ~( _" i4 C4 j' T( f* y: T{int i,j,mid;
- z2 B& A& ]6 X i=1;j=n;
- J: o P9 J& @$ I/ fwhile(i<=j)6 v9 B" }8 o: L
{mid=(i+j)/2;
% y: |( H% g+ {+ n if(k==array[mid]) return(mid);
* Z" D/ o; ]; f: Eelse if(k<array[mid]) j=mid-1;& L7 Q; H8 u1 n V% |, h/ C, f
else i=mid+1;
( O1 X! ]+ a* R7 q* V/ y0 F}! v$ t! {) P+ b$ `. M+ S
return(0);- b- p2 Q: v1 I: m) _- z2 M5 H
}</P>
% d0 O8 e) {: c& k! a8 I< >/*冒泡排序法*/
! }+ o% {, \; q, @0 I) ~7 rvoid mpsort(int array[])# x5 |" R8 @+ e4 M/ F* Z
{int i,j,a; d) [9 F( u4 F# \) S8 z
a=0;
]3 n& D! W+ N for(i=1;i<N;i++)
# Z/ m+ ? K' C for(j=i+1;j<N;j++)1 H: N3 P9 j; e4 b$ B
if(array>array[j]). Q( D$ m4 y) ~$ W5 D) Q
{a=array;; ^8 ]- X- f+ F0 B" ?
array=array[j];
5 \, `+ b) J+ u, I6 T3 F* K array[j]=a;}
) w2 F0 e) F7 W' C6 a3 F: m}2 o! M2 W! C5 o# E! T5 ^# S, M2 K
/*直接插入排序*/
* f- H+ X5 ^' Z6 jvoid insertsort(int array[])# X. w% }# r. Q' w3 H2 M
{int i,j;
+ S* D2 ?. L* E* n( y for(i=2;i<N;i++)6 O E1 y9 w/ w! [6 ]$ `
{array[0]=array;
& D8 C8 j5 Q9 B0 Y! @$ vj=i-1;
( H. o2 E* T, ^while(array[0]<array[j])
: |5 }# y8 E `- I1 n4 B {array[j+1]=array[j--];! N V/ r+ b/ M9 L4 O: l% e. _/ z9 g
array[j+1]=array[0];! l6 ~* w y; f
}
$ {$ C4 ^+ k3 v6 O) \8 T}
) X e2 \, h$ U9 B h, D7 R8 C5 m}
$ |/ \$ i2 [/ k! c/*建立*/. U, c' z( A4 ^( F
void creat(int array[]) ` x" J/ v# v9 g; [8 t' Z! ]
{int i;/ p) D. q; w% Z( k* J" r) R
printf("enter the array:\n");4 ]! ?3 T1 L, b% D5 I
for(i=1;i<N;i++)
) U( j1 ] k8 _3 \6 F" [ scanf("%d",&array);! R5 L- `( \+ g# ^ w
}</P>
* r+ q: {1 L+ ~6 ]; m< >/*显示*/6 l, }2 o: o. ?. }, ~
void print(int array[])2 e) Q# c+ M, d2 E0 Z+ y4 G& b
{int i;
$ H& J8 V7 {, w3 Y. t printf("The numbers after sort is:\n");
( R2 V% b9 ^5 m* d$ x& N) \ for(i=1;i<N;i++)
3 k$ L j7 c2 N5 N* S' m printf("%d ",array);7 y- k6 @! R/ K. D, e3 }/ \2 b; `
printf("\n");
, o0 x. M4 B9 M5 q; Q" o }</P>+ R6 E. r0 c+ A. f
< >+ R" I6 ^ I( H; q
main()- \+ H. ~) |$ _ X7 h, V
{int a[11],i,x,chang;0 ?9 z: h' q% t2 W0 q0 i) \5 j7 Y
/*printf("enter the array\n");
" t# ^# v" X5 f. y) W for(i=1;i<11;i++)8 S+ R3 F' |) T1 u8 c/ ?* P b
scanf("%d",&a);*/</P>
, K+ o( V; [& D< >aga:& n7 Q* o. K% b5 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");
' _2 V' w3 m) @2 n: j. x- f; k scanf("%d",&chang);
& X( Q+ A* N5 l' z3 M) h1 k" N switch (chang)
1 |* ^. V, ` F, b; F" H( G {case 1:, n7 F. R, I$ u8 e/ f6 p
{creat(a);
0 {/ ~( G; ~! b/ U6 s: X printf(" lease enter the search number:\n");
4 T, T" V) q( D; a scanf("%d",&x);+ r; h: Z& E$ c( g$ w$ s
printf("The number station is:%d\n",search(a,N,x));
# r7 B9 X' y7 |4 ?( C goto aga;
. d' k4 z, |. w) R/ i0 X* z4 u }
0 D/ y$ Y {2 E' y4 { case 2:
. E y: y( O3 X5 b0 v4 C% \& Y { creat(a);$ g6 Y+ c8 T9 z* n5 b) m, ]
insertsort(a);
5 q' d% `) I I1 ? print(a);3 F+ n5 @3 Y/ H9 T+ v+ `' p" s
printf(" lease int the search number:\n");4 M; y0 k/ t' F8 P
scanf("%d",&x);' Y- m$ V8 y' l
printf("The number station is:%d\n",halfsearch(a,N,x));
2 ?" J9 L' D6 h goto aga;; L, |+ G" G/ e3 |5 q+ T
}/ C% ?# b8 {" V! H; b
case 3:
2 u, X) K8 @/ Q, h/ i( q {creat(a);
" X2 j+ W9 Q$ ^0 p insertsort(a);+ e7 p& X/ H; N! _
print(a);
' t2 K% T* I1 I# Q; o goto aga; h. R# z/ y/ j! I* e8 B; c
}</P>
v5 B( {7 x9 [< > case 4:
( ?& K8 B8 g2 h n8 t {creat(a);( |- H7 ^! k$ o- j
mpsort(a);
! q* b: g5 K1 q. m2 S print(a);+ S2 [1 f* ], s
goto aga;
+ n. v6 p! ~/ N6 K6 e/ R6 @9 I }</P>
8 E: Z3 n) x3 l' @3 n$ z, j# j< > case 5:{ printf("exit!\n");break;}
8 C S' a8 N, e) ` default:{printf("Error!\n"); goto aga;}1 b: w' u& `" p0 K2 P, O \
}
% |+ k; ]7 C$ `9 e}
$ h; C' R; b ~4 G" W6 S : f# G4 B( L9 J# d
0 ?7 O, }7 d8 b5 l</P>' Y& f# z7 c+ G5 Q! \, B
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|