- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >- x) x1 Q8 @. ~5 K9 a5 V
#include <malloc.h>0 `& @. ^8 G" s
#include<stdio.h>( S. R. O* Z0 [
#define N 119 y' |) j$ ?6 C" u- r8 _
/*用监视哨查找*/
1 G# U E7 d; |int search(int array[],int n,int k)+ D+ } k6 e7 V! Y
{int i;
; a+ ` g8 c$ J4 x& P- N i=n-1;+ d2 G# X( i( g6 \2 m# p
array[0]=k;3 V' }1 p! J3 w' h2 y5 g
while(array!=k) i--;& U$ t2 w' H3 H& `4 {% w
return(i);3 E% k8 X4 e. `' x6 ~" U; F* ]
}$ _9 ]& \# b' h5 W6 Q
/*折半查找法*/$ C6 N* F( r1 K, p2 A
int halfsearch(int array[],int n,int k)% j. T: P7 `3 w9 K/ t
{int i,j,mid; A6 G( A. b0 ]- ~( [: S! V! O
i=1;j=n;3 d {0 Z3 E# n4 F. s/ v
while(i<=j)5 q q+ L2 U0 y2 K6 s- f/ \" ~( P
{mid=(i+j)/2;
( j9 ]1 ^* L' W4 r if(k==array[mid]) return(mid);: m# A+ b* r4 T+ X0 O
else if(k<array[mid]) j=mid-1;* P# F' ^1 v s" S* M5 S2 M- y
else i=mid+1;' k2 E+ a v6 A* s: y0 e
}
$ C* q) [3 P: M. rreturn(0);
8 A' v8 @: s, Z8 S}</P>
7 n) [( u( P+ \! ^3 B( {< >/*冒泡排序法*/
* \0 t9 X3 ]1 a: m2 m% g$ ^4 vvoid mpsort(int array[])6 p: n% O$ x0 l# s9 O$ |7 B" T
{int i,j,a;
u. t5 @+ s0 T+ E( I# ~2 l" ^a=0;
& j5 w* q5 L9 X1 ] for(i=1;i<N;i++)
$ V9 c$ J. Y( i2 ] c1 g$ P# c( t for(j=i+1;j<N;j++)+ f2 |) _! p$ K% X- h( N* b
if(array>array[j])
5 _' ~$ a' H% t# H4 g$ a8 `* U5 k7 m {a=array;- q9 h9 t- h5 `" z* ^) w
array=array[j];
% ~. o+ C* Y3 p array[j]=a;}
9 J% d! P, F" F+ W" c}
0 I2 e% l6 i0 t/*直接插入排序*/! s1 h8 p$ U3 E g
void insertsort(int array[])
4 D4 g; ~' o e; N0 u2 k/ o4 c{int i,j;* O: J) V. H8 J% `+ ] @
for(i=2;i<N;i++)
4 W" c8 H2 v, N6 z3 T( _# E6 W$ I {array[0]=array;2 c, {4 d; R, ~ g7 k
j=i-1;& S0 [4 G& u( G( N, A0 A1 I8 U
while(array[0]<array[j])
' j$ q7 I5 M( B- h {array[j+1]=array[j--];
. |9 p K1 W3 n/ J& D array[j+1]=array[0];
$ m5 K* U7 L6 L! |3 j# E2 }# t8 \}
P# Z5 c. ]6 n+ [/ Y}% i1 @# u* ^" k& g5 o; M
}, @7 R6 g ?! G0 }! E1 @
/*建立*/4 e |8 d a& f( L0 n
void creat(int array[])5 P% p% i+ K1 C1 {- Y1 v D! F
{int i;' z( S8 A T$ J7 b/ Q
printf("enter the array:\n");
4 ~/ h; ]1 x$ c1 ~" f: t ?" r# r3 y for(i=1;i<N;i++)9 ]- w; W& F! b# m- ]
scanf("%d",&array);2 {4 ]2 f3 o0 m- g* |
}</P>
) y% v3 Y% j, x4 X1 h# v" d< >/*显示*/8 L2 Z" T( h2 f x1 ]
void print(int array[]). c, Y0 D( d5 h2 D0 V* u
{int i;- s. l, M5 g. _5 ^8 x! Y8 f( ?
printf("The numbers after sort is:\n");* g- d) q5 A( r8 A9 l
for(i=1;i<N;i++)' b# g7 D1 b; J$ d& B
printf("%d ",array);
7 F* r, O! X- @ printf("\n");
& B* G, K5 A$ b' ~! C! v }</P>3 u4 n3 X; ~9 Q1 ?1 @$ G
< >6 Z: i5 J, X# R3 }' Z
main()
/ Y+ ~9 C/ ~9 j, |9 Y{int a[11],i,x,chang;
8 H7 x$ A( e q9 Y6 v+ L7 k/ ^& v+ n /*printf("enter the array\n");
* }* s3 k+ H$ z2 g" R for(i=1;i<11;i++)
! S* }1 Q! b8 y: S6 k' r2 e6 R! l$ n scanf("%d",&a);*/</P>/ h$ j2 r; D' |3 u2 a+ O- o
< >aga:
6 |0 G/ A! G8 |( H3 X 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");
, a$ t: K( K0 G8 U scanf("%d",&chang);
2 a* [ @& a0 {4 @! X9 g4 {: @) h* \ switch (chang)
# e/ L1 e% V2 V Z, h8 O% o- o {case 1:
+ X$ b& {* ^ F) s) l$ g {creat(a);
z& l/ N8 ~: \' b1 C printf(" lease enter the search number:\n");
7 i8 e% j J- Z$ \0 d3 q7 a scanf("%d",&x);
2 y5 B4 Q. h9 p3 W2 j2 I printf("The number station is:%d\n",search(a,N,x));
' B7 [( {) s. o, K6 D. K! E goto aga; V) i- o9 K5 W8 n2 T) x
}! o% l1 K) n/ b3 E
case 2:: z5 @6 {: j5 O9 G% N
{ creat(a);% Y/ N$ I1 D/ p- C3 ?9 Z1 ~
insertsort(a);
1 b9 r( c& r! i2 J q% w& @) i print(a);" b! R( c+ r( Z
printf(" lease int the search number:\n");
! y' j3 W- v, f8 J. _0 B+ g scanf("%d",&x);* ~" o: G3 g9 ]6 O
printf("The number station is:%d\n",halfsearch(a,N,x));* V5 H/ W/ n: Y1 F. |% v" d
goto aga;- x% W/ d0 D9 S' E0 L
}; E7 H7 ~% x: }% D: g
case 3:
2 H9 j6 q* P, T0 y5 w. P {creat(a);
1 R- ?( Z4 `) I3 b& z7 _ insertsort(a);5 [ ^) S. K6 \, t7 L4 g
print(a);
+ i5 g1 Z7 U: k. k/ Q" ` goto aga;& G7 m* y2 X {# S$ Z5 c! K5 v
}</P>
% i: s, N' v8 y2 i< > case 4:
% S+ M5 F1 w0 n1 r( [, ]4 ]. Q {creat(a);# O, c @/ W+ ?3 q( D4 {; |( q
mpsort(a);
# |5 b- z$ t) U& i- G: x' [ print(a);
]1 F: q) t# o# w6 A2 r; [) p% X goto aga;6 M+ I, x0 m& k* j) ~5 X8 b8 ~( f+ j
}</P>
4 B+ E5 g( k6 ~1 R& P< > case 5:{ printf("exit!\n");break;}5 P/ B8 C ~* @7 I
default:{printf("Error!\n"); goto aga;}
& ?9 a$ R3 \ e' `: ~} k& Z/ E8 g) t6 i/ j) A& W8 P
}
7 h7 m+ K6 _. O! I
9 v4 G2 G+ P, X5 a8 d, r ) Q( l' ]( k/ { a4 K
</P>
8 q0 A5 y& R. Q" ~4 N" \[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|