- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
$ }) {5 x8 C/ q#include <malloc.h>9 e* H& m/ ~- z0 P
#include<stdio.h>
3 ^8 f1 F) u( k/ p/ t9 z" Y#define N 11
1 k6 D$ `6 a* R: N2 l K9 ~/*用监视哨查找*/8 z( ~9 l* a6 t' K
int search(int array[],int n,int k)
2 y1 y) t! n) @: e B( N y{int i;3 p8 K, ]/ K+ l% @
i=n-1;
1 h2 e! w1 F/ t; y, r' ^* e; parray[0]=k;# I8 i8 `; m6 M" a
while(array!=k) i--;
' e, j3 g6 F" N3 @( q% N9 Greturn(i);7 C! H6 Q! X3 Y! `9 K3 @
}5 p* v& x, }5 j3 _' Q
/*折半查找法*/ g- b$ |- q- G9 |, U0 R
int halfsearch(int array[],int n,int k)% Q0 [9 F' t5 J$ g
{int i,j,mid;% w( |) ~" y" K8 H
i=1;j=n;
# D, E7 Y9 _4 J: ?5 dwhile(i<=j)
2 _( c0 Z# F$ c6 g( m3 Z* D{mid=(i+j)/2;; }7 `; E3 K0 x& `: L8 R
if(k==array[mid]) return(mid);, N1 F5 m" }0 [4 U5 P+ i4 J
else if(k<array[mid]) j=mid-1;8 q( [7 Y0 A# E# a; _& M
else i=mid+1;4 ?2 O, U2 N& E# U! [& i; h3 n
}6 c1 U+ g& a" r2 ^. }
return(0);
0 x4 {; l) y6 c% w- @- ~3 r}</P>! a; R+ U& }& L; s) d# ~
< >/*冒泡排序法*/9 z' P% A4 c, U x9 F) }* N+ f
void mpsort(int array[])
" E8 d. O: G- B5 G0 K+ a{int i,j,a;3 {, m) i# T% h4 U7 e5 ]
a=0;
5 }3 A9 U( C4 s0 P* F for(i=1;i<N;i++)
1 J. p3 }; e: x for(j=i+1;j<N;j++)/ h b$ I- C$ Y% E Z2 k3 a; G
if(array>array[j])0 X! w; I; B5 C$ D
{a=array;4 n- F- {* v' a
array=array[j];8 q$ P0 Y" f. h- L- i- |+ f1 h; Z
array[j]=a;}! a, X, P% V6 [7 d6 n
}2 [' Y- T/ `& h6 f0 O7 ~
/*直接插入排序*/
: [ q B4 s/ W- ]5 p* I# svoid insertsort(int array[])
! W& E5 v( M% H# R8 X/ Z{int i,j;! f' M$ |" P" C2 S
for(i=2;i<N;i++)) P0 k7 Q) k$ X
{array[0]=array;
& n) L3 F& R( g0 D( T' @( Pj=i-1;, O/ }- Q* j4 |2 p# g k
while(array[0]<array[j])+ i- f0 y% J/ f. C& _0 e% \
{array[j+1]=array[j--];7 A, @' G4 k. s9 l
array[j+1]=array[0];$ S& I0 |9 k) G, F1 K9 Y. U
}
x( |8 s/ ?" v) X}
! F. _* c+ W8 H+ }* |* l}
( d; W- h8 G' A' T6 }, H; b+ H; A/*建立*/0 W# `# H, O! S) M& p
void creat(int array[]). R$ x. n# _# ~ J
{int i;
L1 o1 l; K1 A! z6 c printf("enter the array:\n");1 q a+ ?# G) A: n: y+ L, J
for(i=1;i<N;i++)
- _6 y0 M5 _9 ]2 x; w5 T: h8 I* a scanf("%d",&array);* d/ S% g7 O% X; f/ V5 A$ t7 c
}</P>7 Z; q5 @% |1 \
< >/*显示*/& A7 [% |+ |& q1 J2 e
void print(int array[])
2 b: B& K" E/ B4 B9 B& | {int i;' [% O; l8 @0 C( N# E1 t
printf("The numbers after sort is:\n");
4 W: P$ n4 Z+ l9 w for(i=1;i<N;i++)
, ?+ c) [1 g! j1 J; Q1 O! s+ Q printf("%d ",array);$ Y, ]$ ~8 t$ P
printf("\n");
) s5 `1 r& \4 d% S5 S k5 k! H }</P>' t/ W0 i& Q) I& Q# @; b
< >
6 A, R; ~. a" F% K' omain()5 v3 F d! y, @- W* Y& E
{int a[11],i,x,chang;6 g4 Y2 ^* R. S1 z1 i" F9 u
/*printf("enter the array\n");
( D, K5 N/ U- p( b for(i=1;i<11;i++)
9 c+ ^1 z+ U) {: G scanf("%d",&a);*/</P>8 r5 a: Q* C+ N! h
< >aga:
. N6 D& z, v2 K. F 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");, ?/ W9 B2 z P7 ?7 M( u: R
scanf("%d",&chang);) [3 ?& O& s8 m
switch (chang)' X# S+ ]* E) Z6 m" t4 e6 D% E
{case 1:5 G) u" _9 I3 j3 c6 ]5 v0 c
{creat(a);; ~; H+ E4 F4 {" @
printf(" lease enter the search number:\n");
$ K/ K l" D! h! _7 p scanf("%d",&x);- w7 z- P& e: _- N' P' }6 D: `
printf("The number station is:%d\n",search(a,N,x));: N+ S* y6 Z4 i3 c
goto aga;. U1 K( L1 I/ M0 M6 N
}0 Q5 O& R: p% D5 u
case 2:! u+ X& C% _ K% X& t
{ creat(a);0 J% y7 ~1 H" Y) O
insertsort(a);: e8 U& o$ ]# U1 d* d' m
print(a);
- `- h0 w: P3 c0 J% I2 ~% K m# ? printf(" lease int the search number:\n");% J9 @2 n; k: N0 I6 p2 X
scanf("%d",&x);
- v1 u9 S6 h# |; p1 { printf("The number station is:%d\n",halfsearch(a,N,x));7 e' h5 O8 z k8 B, s$ C: B- H7 b
goto aga;
6 I, k' t, b& ^: l* x2 |: } }" Q }: y+ P" j" g8 w3 j r1 \1 x. B( a
case 3:1 |2 N) a/ g: i6 q! x O) G
{creat(a);9 E& k8 \6 e6 {
insertsort(a);$ S9 W6 E1 F' X/ f5 t# h
print(a);
4 [" a; \" D8 C goto aga;
/ h( B) C& x' r0 C- B5 J8 u }</P>
i9 ], a' o, v& f: p< > case 4:
: w+ b( m |! V6 }, p* p+ _ {creat(a);
4 m! k0 v! i& K mpsort(a);5 o# E# o( P' o: @" D n5 t: P
print(a);! C* \, r, T! P& L+ g7 p
goto aga;1 W8 h1 R+ o+ q$ n
}</P>6 o( t( a& B* d& j: B! y& S+ S* M
< > case 5:{ printf("exit!\n");break;} H; Q1 ?7 I) ?+ n# m) N
default:{printf("Error!\n"); goto aga;}. r1 Y9 I* |' g
}
$ X# G( |0 e; ~9 P# ]# M}2 s) l% q! H9 L1 ~9 y
. u$ g! {) `& l3 v& o5 d3 b1 i G. H
+ i- \! }/ Q+ o H: Q5 ^</P>! F: I8 Z. y, c
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|