- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >! {- q& Z5 w* V) G7 s7 C( o1 n6 @
#include <malloc.h>" r. ], d# ?9 ?- z# Q' E
#include<stdio.h>6 R9 J: G Z, d
#define N 11
1 S6 E, n+ {2 ^/ ^% w! n! `8 B/*用监视哨查找*/* s N) f9 {+ t: I
int search(int array[],int n,int k)) R5 H: N, @$ O3 I2 b# I
{int i;' L9 @# f1 p N1 h1 ~
i=n-1;
0 D W1 I6 a9 uarray[0]=k;
k ?% w2 m9 ~while(array!=k) i--;, z( {- y! A3 }( i# L) P3 E) Q
return(i);6 h/ L L3 P0 B E
}% A! _ d& |( p& A
/*折半查找法*/9 o3 n3 L b$ M2 l0 z9 x
int halfsearch(int array[],int n,int k)
6 q$ u7 n% U4 d# d) }1 h9 {3 H{int i,j,mid;6 s; r- t/ Q$ ~0 x
i=1;j=n;
: }& M' \, }7 ewhile(i<=j)
; `4 u/ u) Y9 Q& H' k5 N{mid=(i+j)/2;2 P) `: G5 x2 c4 c1 R5 L, O7 A( L7 s
if(k==array[mid]) return(mid);+ ^4 Q" ?+ g# k8 M: \ `
else if(k<array[mid]) j=mid-1;/ w0 q$ C2 R- s8 ~. n/ @$ h
else i=mid+1;
+ z, _6 y3 f& B7 z}
9 a l( T2 [: r) {4 p7 Breturn(0);
1 X7 ~# H7 N( {7 s2 z}</P>
: |% V7 j, S, Q3 [7 t# a< >/*冒泡排序法*/5 d. y* } _5 c6 }8 p' x3 V
void mpsort(int array[])
/ O/ j0 K& E# N2 ^/ g{int i,j,a;$ [" ?1 M: g, p/ ~, G$ |, J" w
a=0;
( e2 j# ^' g% f5 i: E- l! P) \3 D for(i=1;i<N;i++)* {% p7 i; a+ {6 w! q6 R( O; e
for(j=i+1;j<N;j++)0 t$ e) E, D8 `
if(array>array[j])
, `& }4 K% X$ ?( j ]% P0 L7 ^ {a=array;) i- e& w( P1 B' F& J4 t3 H5 e
array=array[j];
" E# o u% O( `& c3 b/ X- L array[j]=a;}
. N8 b. \! a4 a' q* k4 M+ o3 G}
% ]% D& r, k. R) V" E7 x/*直接插入排序*/2 }8 q. x/ V% e. v; l7 w7 J
void insertsort(int array[])
( R3 b/ v8 R" u, R; _, N/ s- z{int i,j;
1 }8 e' h# G- L! Y9 o8 t for(i=2;i<N;i++)" Q3 O7 ^) C7 K" b0 ^: M6 g2 [) n0 U
{array[0]=array;) b8 F9 C9 ~' [& l3 H
j=i-1;/ }. y# J$ T( _0 s( k+ u
while(array[0]<array[j])* y, g1 a/ U O/ O6 i
{array[j+1]=array[j--];
- r% F, M# q. z5 D6 l array[j+1]=array[0];. s H4 j0 Y. B+ s* s% C
}
9 R9 t$ a5 K0 ~/ z}9 d0 f8 }8 ]& @
}
4 V6 o2 w |. k! u# c; Z4 D/*建立*/( s) ^9 I6 @% @
void creat(int array[])+ O; ~0 c% L- X$ ~1 [* F& h
{int i;
/ H- }& J/ f8 H6 F' U printf("enter the array:\n");: S ?4 Z7 X8 H4 B0 I$ D' @2 I% E
for(i=1;i<N;i++)
/ E6 C T! g, m* Q scanf("%d",&array);
9 s$ G7 i; ]! r6 ~4 M, J}</P>
2 L& ]' U" ?& Y0 E6 T# f< >/*显示*/: L: d. P5 S# M r
void print(int array[])% d5 Q# k5 S. V2 x9 A
{int i;* ^0 {. ~/ o3 G; t! c" Q
printf("The numbers after sort is:\n");4 @) ~ W9 f1 O2 {
for(i=1;i<N;i++)3 P+ ~2 R8 m d3 F* @) ] I5 K
printf("%d ",array);3 H- p" D# Z" f4 y' w
printf("\n");/ Z3 A2 Z* @& y! y; W+ V& p
}</P>+ E7 Y/ m, N- n7 O
< >( {: J/ J, h& Q
main()- S5 K* M3 {9 f5 Q, W; z9 U( O" q+ {
{int a[11],i,x,chang;
' d' }/ I8 I- R+ R5 L/ V% w: ~ /*printf("enter the array\n");
/ I3 d) t7 R5 l. i for(i=1;i<11;i++)( ~9 u( x) K; l! b
scanf("%d",&a);*/</P>% ]( ~) Q6 V4 a# O, d# o J- K
< >aga:$ v0 B! O( i, ~$ d! ]! \$ S
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");
: W" p, |; d% q& z" z& p/ O6 U! e' W scanf("%d",&chang);
5 U; t8 o3 ^/ r! t switch (chang)+ S" ?8 ^# p3 }" y- z
{case 1:2 `/ k% I' R. O2 A$ v( S
{creat(a);
' \* }: I) f( S" d8 e printf(" lease enter the search number:\n");
# e/ ~! k7 R. b scanf("%d",&x);2 K! t5 y& P& O7 K) e
printf("The number station is:%d\n",search(a,N,x));0 F! Z8 t3 i7 X7 _" Z5 V0 O6 M
goto aga;
0 ^& f: Y* l C }1 z% c4 x0 ?) g' t" m: q" w
case 2:
0 s$ t4 v# G2 m, i" I2 B2 A* w4 s { creat(a);
" C6 A: q) S7 a/ N insertsort(a);
5 Y: T) _+ a) t' o7 R$ a print(a);
5 `7 A! \8 Z* H printf(" lease int the search number:\n");
& y; H9 W K; |# `1 c! ^ scanf("%d",&x);- C+ _% r! T9 H: p8 D
printf("The number station is:%d\n",halfsearch(a,N,x));6 Z. u5 [& W* N
goto aga;# W& w2 u' A$ j$ F; V5 C& a& I) H
}
! }7 X2 t1 ]3 w Y( Z' h case 3:4 |+ f5 m- @1 d7 u! V# S$ g
{creat(a);) c' @% M e' k1 z$ t8 F
insertsort(a);
- s$ t1 S- g4 w. } print(a);
- A: v s5 ], j9 W* @ goto aga;
: I0 ?, F* i! d& S' O9 _ }</P>7 M$ v1 M' o9 J9 }
< > case 4: l9 U0 i2 d0 }1 K. `& C
{creat(a);0 i* m6 u+ n$ Y
mpsort(a);
8 f7 S. o* @2 u8 t1 K- N. d print(a);
8 Q( b g- H9 |% i, [; E goto aga;/ x: i- h: w ~( I+ G" v
}</P>% J& j+ c0 _" a4 A
< > case 5:{ printf("exit!\n");break;}. Y5 R) [- z) q3 _) i D" A7 u
default:{printf("Error!\n"); goto aga;}
9 t5 z; z2 ]3 b( |+ j, H6 r" x" n6 X+ j}; j. j5 v' N! |! B
}
5 ^+ a0 F3 k0 l5 O. e 7 W+ ?0 P/ R" b, |- m
& K2 {- Y1 Z$ h' q/ m
</P>; |: o; j1 s7 l/ ~: i, E
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|