- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >( s2 s6 x/ A: d! K, W6 Z
#include <malloc.h>
9 O$ d' ^( J. ]5 F#include<stdio.h>$ z( h% B8 a' Y# p3 {2 Y
#define N 11
. T) m! m2 Q( N' N/*用监视哨查找*/- _; O; n& t, w; p' H2 S L" [
int search(int array[],int n,int k)7 z# ]# l% q# ]) P0 C( k9 j/ k# R+ _0 P
{int i;2 i# l/ W2 B. p
i=n-1;- s7 {6 s6 v) Z9 K H
array[0]=k;
( T5 K3 g+ z2 f$ ~, Y( A4 gwhile(array!=k) i--;- O P& r6 B+ n7 g$ }
return(i);1 f9 y6 m6 c' J. `( X" ]/ U3 I
}& G4 ]" X# l0 [0 ~" j% d- |
/*折半查找法*/
1 C4 V: y) f+ O7 j; Tint halfsearch(int array[],int n,int k)
$ M; D: [% E# f' J) y8 I{int i,j,mid;
w3 x- Y/ F' { i=1;j=n;
# l% w" H" Z) @; y A' hwhile(i<=j)
5 g- H4 h( Q! Q1 h3 G% j5 C! o0 G' R{mid=(i+j)/2;
7 J- q$ N5 ]( P' C if(k==array[mid]) return(mid);
. D6 g% C m. U6 W0 S3 ]else if(k<array[mid]) j=mid-1;
+ {" D/ L0 A8 C3 L, N# O& A else i=mid+1;
* ~) M' B' X6 a6 D7 F- _}
1 t; |0 E& V2 r) f, Greturn(0);+ q+ m+ c% G$ h% F
}</P>5 [+ I, @# a2 j/ @- {8 ?% g& K
< >/*冒泡排序法*/- v, j$ F1 u5 S
void mpsort(int array[])- Z, F4 o# ]$ Z! F( ]) ~7 k
{int i,j,a;3 T! j6 }9 f9 u$ ~; N* u
a=0;7 p; q. J& Q4 P8 Z( w1 [' X
for(i=1;i<N;i++)1 m( y8 O8 n# ?0 o5 o R
for(j=i+1;j<N;j++)6 w$ W1 u5 T3 w3 Y2 E
if(array>array[j])
+ v9 L- l$ N7 I6 E& q3 I8 F {a=array;. a! N5 C0 p6 U ^
array=array[j];9 E* m, ~+ G. ]) U8 H/ B4 B
array[j]=a;}
8 x% q# ?# m" w, S' e}/ i! \- z, u. | I
/*直接插入排序*/' a6 h- @# j, n( a: _- D
void insertsort(int array[])
- u" }6 ~! ]: Q+ Z/ U8 Y \2 @8 A/ v{int i,j;* W! ?9 G/ Q* b4 |+ e
for(i=2;i<N;i++)
$ V% }$ J" s# ~6 S' `4 M9 a {array[0]=array;- m5 U, H1 {- F
j=i-1;+ ~8 l- c! {/ ?
while(array[0]<array[j])
3 @- q, m& {1 t- b1 L. I% u( L0 W {array[j+1]=array[j--];
9 X- [- X4 b" O array[j+1]=array[0];
" a. q% v) j+ e' i$ J}
$ K( F+ x3 m) [1 ^}
, |! u1 e" n4 h) O}$ }* y: s+ v4 E2 L* v: ^
/*建立*/& \) E1 }6 t E! s. `$ B0 j! N
void creat(int array[]). f$ D+ t4 |% U7 Y3 W+ `+ o
{int i;# W! _' h" `2 P* R7 R
printf("enter the array:\n");
* @) @1 }* t% [2 b x for(i=1;i<N;i++)
/ F% ~; G- B. _# Y2 d d! C scanf("%d",&array);1 W v( K- y0 v: t. v+ n
}</P>9 @' N* O* ]0 a0 v& X
< >/*显示*/7 ?2 E7 q% C+ `3 M# M/ ]0 J
void print(int array[])
; n+ u( q% X: y! v" j {int i;. B/ j. y8 h3 S. e5 {2 L
printf("The numbers after sort is:\n");
/ @+ x8 O3 [3 u) }/ Z: H) O: a for(i=1;i<N;i++)* y$ Z1 c6 f4 J- Z8 G
printf("%d ",array);1 K8 i3 f' V5 e
printf("\n");) m. W2 n0 k, v( E, M- E9 c) p$ P
}</P>
8 [5 g5 c. H5 u" @; q9 }< >+ Y$ q8 l; G( j0 s. r
main()
! E3 a @* O& G- u. Q{int a[11],i,x,chang;
# h( R7 D; v& }7 ~/ W /*printf("enter the array\n");( U0 m% [5 x0 Q# T& \7 d0 y7 o4 V
for(i=1;i<11;i++)4 d1 N( i! z- I3 V$ @6 F: C
scanf("%d",&a);*/</P>/ e2 x4 q2 V9 H
< >aga:4 V- o9 A: \+ I& ~, {+ p6 o
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");! i4 |/ E7 P$ h4 Q
scanf("%d",&chang);1 F& ?: g8 J0 E& }- p: W
switch (chang)6 D' d( y5 S. ` S3 E
{case 1:
) D+ l8 J; A! \0 V" q$ h" f {creat(a);
" R9 j" W' Q; I4 v: z: i% Y5 P printf(" lease enter the search number:\n");
3 K ^3 ]) g! |& n scanf("%d",&x);
4 m4 R* @3 G Y; B7 N+ a3 b printf("The number station is:%d\n",search(a,N,x));+ `1 U- u, b% P' \
goto aga;
1 R1 v( X9 X4 }# g. [5 D2 T }
0 ~0 V1 i$ `' x4 r case 2:
# R1 [! w; z5 S: d* T6 e. `' Z { creat(a);% i" h1 u2 d t9 L
insertsort(a);7 t( t$ V0 v/ `/ F+ h9 W8 O
print(a);
4 \6 g! {# Z3 N3 j printf(" lease int the search number:\n");
& C: V9 {# C. d) ? scanf("%d",&x);
% Y5 u0 q% l+ E* C- c6 e6 [' D: p printf("The number station is:%d\n",halfsearch(a,N,x));
& I$ u& [( T% H" t9 p goto aga;6 w; S, [, H5 d9 Y: \0 O
}7 B, {( n1 m0 } ]$ o
case 3:
' b2 D5 x2 I/ K3 G# l {creat(a);
6 ~" l7 b0 a7 q9 M" m. U" O0 j insertsort(a);
- r* I- Z9 G4 K+ K4 u! M print(a);
: s' _ N& o0 L2 r# ~; e, Z0 t3 E goto aga;
9 h7 F: |. t1 T6 ~+ S: j. j- q }</P>" A* M' j5 G$ M, i$ D4 Z
< > case 4:5 B& v( E; R3 L) s4 Z
{creat(a);
6 [& v9 |! s/ f7 f mpsort(a);
: X" ^# w- G) E' p- s% z+ Y print(a);
, h- S: M6 Q+ J( O goto aga;
% J( k1 D6 C4 c7 ` }</P>; W, Z7 \2 H5 G
< > case 5:{ printf("exit!\n");break;}; T% E* ~. }7 p4 q5 R) Y
default:{printf("Error!\n"); goto aga;}
2 M* R% T; }! h/ H/ K) q$ T$ w}
6 M v! C0 n% _0 S1 M2 e: I# ^}1 r7 q0 Y7 G7 }2 a; D
! J7 ?: ?$ m* h6 q/ v
- g* f6 y/ p. }* L+ }- P& l
</P>
9 T8 z0 o% y6 v* F8 W/ v# a9 s1 _[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|