- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级 40% 该用户从未签到
|
<>& ` M' Q. ]9 M. o2 N" ?0 [! v
#include <malloc.h>9 z T' `& K! j1 s# i+ x7 k
#include<stdio.h>
( G% j% A3 I- Z0 K: R#define N 11
( v8 Y8 N1 D; Z+ C4 U2 o% S/*用监视哨查找*// T$ ?. b% g2 x5 Q! p8 k! Y0 ]; {/ [& \
int search(int array[],int n,int k)
. Q/ |* r3 g4 R. z6 p6 h{int i;" p8 l4 c0 K( t9 S j- }! o) ^: j
i=n-1;9 k9 s7 u+ n( P* G
array[0]=k;
) Y$ s% @# {, m8 v: ~while(array!=k) i--;5 p7 ? D9 H3 S2 [
return(i);/ o y- r. ]7 Y: e+ h ~! I; r/ S
}: v8 H3 z" x9 A0 X: \
/*折半查找法*/
5 l+ a1 W* p) [int halfsearch(int array[],int n,int k), f$ y$ d) q; G7 i, w$ U
{int i,j,mid;
0 [5 V5 t3 Z! g' o( C i=1;j=n;/ g0 Z' _/ D ]. n6 x. t, \2 p
while(i<=j). J% O8 V1 n% D4 [
{mid=(i+j)/2;
+ P' X0 R3 P6 ~# e4 a if(k==array[mid]) return(mid);
d% }& U8 k1 U' X2 L! Selse if(k<array[mid]) j=mid-1;3 U& r$ e- D1 Y$ F1 l; H* p
else i=mid+1;! f. A7 m2 Q- k# Z2 x
}
\9 `, P+ g* {0 y' X; o Vreturn(0);+ u% Z: z' j' c0 U
}</P>- z/ y* I: c# O$ V
<>/*冒泡排序法*/; ]) o2 z5 V! d# E5 ~+ C8 Z2 L; N
void mpsort(int array[])
. ]' t" I/ I# @{int i,j,a;" v% L3 K$ }3 o# `
a=0;
6 c4 O* H5 @2 ^- q! Q9 A for(i=1;i<N;i++)3 L3 G3 {* D ~ {" |$ E
for(j=i+1;j<N;j++)
) f0 K1 l7 a* L" W a4 A if(array>array[j])" I1 N/ H7 o2 C. e) o
{a=array;1 l( x& W. L6 K( k4 C$ \. h, V
array=array[j];+ Z6 g3 r7 P, V
array[j]=a;}
. d6 n( _# u8 D/ J" |' y( |" Y}
0 n" S9 R8 N, ^0 x) U+ ~/*直接插入排序*/
% F0 |* V0 p4 B) @8 |; R& Z$ [void insertsort(int array[])
/ R* ?$ v/ J' M' Z{int i,j;
: [: @. N$ C+ ?0 P" @ for(i=2;i<N;i++)( g* W: I! A5 t$ s: Z
{array[0]=array;. w9 [# P0 w& w; i
j=i-1;
# C/ V/ n+ p* ~, d# dwhile(array[0]<array[j]). Q% O9 _# t( p7 a
{array[j+1]=array[j--];5 F+ q; T; L- l
array[j+1]=array[0];( b& w0 @' F B% x
}
4 D. f7 e9 d5 w f2 k0 Z8 L}/ c; n; d: c0 ^1 |( ]
}; J2 w/ m" A3 e2 n: R- q
/*建立*/9 ]$ V; L" ?' {+ M. O$ ^; L/ R
void creat(int array[])9 l, a$ \4 z2 u& K0 G: [
{int i;
& R0 C+ n" ^/ B2 \6 s9 q8 `$ e printf("enter the array:\n");8 q; P* N1 ]/ N& O
for(i=1;i<N;i++): q+ j0 O, a0 u8 X ?7 F
scanf("%d",&array);
$ J9 ^. t, {) T& ]0 {; w}</P>
7 x: \- t6 P6 D, ?! k<>/*显示*/0 Y, |- C$ d7 ^/ \
void print(int array[])
& s, J4 F' B+ G {int i;4 v7 k4 m0 K/ B5 w3 x
printf("The numbers after sort is:\n");0 I( j- w( x- ?1 ?/ w
for(i=1;i<N;i++)& e r4 w% E, [9 w/ {9 ?: b
printf("%d ",array);8 R1 x/ O% l; Y9 c" s
printf("\n");
/ ?3 b% r8 q7 ]2 L }</P>
) N y+ ]: A% ^2 k4 Y1 Y, k/ a0 _<>- Z w$ C! b4 s
main(); A; b1 p$ p. b+ i" S
{int a[11],i,x,chang;7 h. |- X* K! |
/*printf("enter the array\n");
5 p9 a3 ?6 s B2 m, w for(i=1;i<11;i++)
) Z0 d( _! y% V0 v. B A0 j: s1 z' l scanf("%d",&a);*/</P>. s" }- e# O& E- t! ?; B
<>aga:. ^* u* J2 V, m3 }5 G u+ m) 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");$ S* `4 z' S* v' T, r
scanf("%d",&chang);. _& ?* L/ H7 Y" m) n# B
switch (chang)8 ~' S! r- L2 N5 m& e9 J% a
{case 1:3 o- K* z, U+ z$ O
{creat(a);4 [; m) \! `0 B t' o
printf("lease enter the search number:\n");3 w* q; V; u, g" w: P E
scanf("%d",&x);" g( a7 c, `8 q- o. Y: k
printf("The number station is:%d\n",search(a,N,x));
; [7 j5 N0 R8 C# h( f/ @ goto aga;% ~1 p8 I% _7 ~0 L9 [
}$ }8 h$ \2 {* x6 O$ O
case 2:$ C! f/ Q! d" B% r
{ creat(a);
- O' x5 ]( D. i. q' O ^ insertsort(a);
& h% O) V9 o' y( `4 K2 M1 C print(a);
& _; s8 e' e/ e0 J) t) J) Q( g8 x printf("lease int the search number:\n");$ H. Q: I; S8 p$ @& z/ R3 j
scanf("%d",&x);3 d* m) G9 @$ j. q
printf("The number station is:%d\n",halfsearch(a,N,x));
( J! u- n: Q0 V( A& o) V goto aga;
6 M' H k& P' E* r+ ^# w }
* z! r* T2 A* V8 ?" v! u case 3:
7 L& o, W, M8 H7 P* m' B$ Y; T {creat(a);6 n7 `! r; o) D% ?
insertsort(a);
7 H2 ]# E, s* F print(a);
$ a; R8 ^% ] E4 }% |3 \4 [7 \- X goto aga;
# O( F4 N }5 y }</P>
; p* E9 b" N/ g<> case 4:
- m) n0 x" N- D {creat(a);% K5 v5 h2 {! A5 h8 H) `9 f
mpsort(a);
j" B) j2 v) n. D, Q2 l3 t print(a);
& j, T7 O+ E9 ?- e9 n" q, q* s goto aga;& G; C$ x( |. \7 U% f' ~9 o! q$ p
}</P>( A; q! z" ]" @
<> case 5:{ printf("exit!\n");break;} c& k+ p& a3 ], Q
default:{printf("Error!\n"); goto aga;}2 d! s! u& V/ }- l' r3 b7 i
}1 _$ D( B# G5 K( _& p. @/ \8 `
}
/ f5 u& R+ `' @
* J. W* _2 @ ]* i# j
6 M2 N4 `8 f( m1 B& e# C/ ^3 l</P>
5 h2 ]9 r& A5 J( U[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|