- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
. ^* m3 R. x2 q c9 @4 N+ ^/ m#include <malloc.h>
; h+ v7 w3 z2 b" M: y/ S( c0 p4 |0 T0 a#include<stdio.h>
9 R# t2 Z' J8 j' d#define N 11& a! `. z& G, i; O$ F& n" X; \
/*用监视哨查找*/: _6 ~: V2 s; c% s
int search(int array[],int n,int k)
9 h- {; V2 F2 y$ \8 F) F{int i;
6 Q0 n2 l& @% S% U i=n-1;
, B& K1 I5 x, @4 garray[0]=k;- ~( a( X# l z' G5 M
while(array!=k) i--;( Q5 D0 A+ x2 }# e8 A' t$ G7 _0 B
return(i);
1 R( G$ Y7 l# R}
& j0 p& f$ O. T/*折半查找法*/. R( G% U1 |8 j& R/ y
int halfsearch(int array[],int n,int k)
* C. w- Y, j6 a{int i,j,mid;
1 }. U: \1 x X8 _8 p# q i=1;j=n;9 `1 h1 h+ f. A3 }1 K! D, |1 F
while(i<=j); M. |1 t& B% h
{mid=(i+j)/2;
8 ]( S# G4 j% h* i4 F4 ^6 ?5 o( r if(k==array[mid]) return(mid);0 q, ]9 Y2 f/ p
else if(k<array[mid]) j=mid-1;$ w5 j- t0 H3 r2 K
else i=mid+1;$ a4 d8 o2 ]0 M1 B* V6 Z" p7 p6 m
}
% ~( D- M1 U0 z8 m& r x7 Creturn(0);
# W& p) H! g- ^6 ?; B$ b}</P>- W+ _, Y+ n7 J) [* k$ |3 M. `3 H5 i
< >/*冒泡排序法*/
: q/ Z, p% c8 H8 Evoid mpsort(int array[])
/ o' p; J: Y$ X! t4 c& M{int i,j,a;& S$ I9 a8 [# G
a=0;
* A7 v& G& E5 r for(i=1;i<N;i++)
/ M$ e0 P: |1 x6 }5 a7 k for(j=i+1;j<N;j++)
- M a8 v H3 z1 t; O5 g8 x; x if(array>array[j])
; j* r' G( V3 U# Q5 X+ M: Q {a=array;0 U& i( f; X% U9 w
array=array[j];/ \4 R$ V% O9 T9 y2 ]; [! ]
array[j]=a;}
1 P' T* f9 V7 A% X0 _ j# \}
& E2 l: g2 \$ n# h& t/*直接插入排序*/
( d* p. B" T4 f$ I# \: i t' Yvoid insertsort(int array[])2 h, z+ U8 m% h) X" z3 V
{int i,j;: U8 w1 U( M3 w
for(i=2;i<N;i++)
3 C! k+ C7 A4 y; a5 G! C2 ? {array[0]=array;
5 p3 Q5 ?! j3 n7 v/ S4 ]! z, @- \j=i-1;
, W& _! j3 S+ q. Fwhile(array[0]<array[j])
2 D0 p8 F$ r5 i2 o$ } {array[j+1]=array[j--];, E$ T$ ^) `% g
array[j+1]=array[0];
0 L9 l- z+ a- y' X}
. h9 Y" h! `4 o1 S}! c- {, Z. q, R, J2 I
}
4 C1 R" t0 y- T' z& o/*建立*/
% ]: u1 ^0 g9 {/ }4 n* Avoid creat(int array[])
+ K* }) D, k' s{int i;
- K' U) {/ Q3 W/ w# F0 g printf("enter the array:\n");, F3 W) e& \9 W; W9 B$ [9 Y* R
for(i=1;i<N;i++)
$ X& d2 d9 o, } {) H scanf("%d",&array);8 K$ p+ v! t s6 i% t# L- a
}</P>
/ R! a$ ?/ J. u4 {< >/*显示*/
8 z% u7 `3 ]5 Svoid print(int array[])- y' F) M( _- b
{int i;: m- t: F l3 r& }
printf("The numbers after sort is:\n");1 E+ j* C" i1 B1 o1 w
for(i=1;i<N;i++)
: }* g8 w: X% r# O, }% y. S) u( v( `, g printf("%d ",array);
h. Y8 j) k5 r3 R: Q9 \; H8 ] printf("\n");# X9 f( k% L9 D/ t- B0 @
}</P>
8 Q) Z8 g* v/ {! X; T+ y< >% D$ K$ {. k8 R, D2 F
main()
4 P9 q! o) C7 t7 O{int a[11],i,x,chang;7 c* c/ H( P0 K# v, f1 w6 ]
/*printf("enter the array\n");
/ K, g; i+ D3 x) R9 W for(i=1;i<11;i++): B+ w+ E1 H5 h) ~7 S9 ~. K! L
scanf("%d",&a);*/</P>1 k9 c9 g# R1 L& t" s( n/ [1 L
< >aga:& a* }9 C3 `1 f: k$ L
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");; y+ ^% K$ j7 F: ~, C$ P7 f1 a
scanf("%d",&chang);
; k3 J8 a( g0 ?' {, c) V7 V switch (chang)4 S# f8 O/ c' f+ z9 n- s; \6 _
{case 1:0 p N2 f& X( c+ g: Q; N0 k: P; m
{creat(a);( }/ s. W2 _+ F# Q9 F# h, r0 Q
printf(" lease enter the search number:\n");) b6 b9 E5 e' b' B
scanf("%d",&x);% I8 F6 N" j3 [0 l2 X2 I# U; K- R
printf("The number station is:%d\n",search(a,N,x));5 Z. m9 z" h5 C4 }; i( A; F, x/ X
goto aga;
$ n7 c8 H, w. G2 k" k: B }
% B2 { |, W; x5 X/ p# U case 2:
* T- D' u, ?2 c2 z& _# U { creat(a);% w% S8 {/ o# k
insertsort(a);
7 r5 T3 B* D, c3 c) V print(a);) F! j3 X7 C5 b9 R Q
printf(" lease int the search number:\n");
~/ W7 v3 p: r4 C( v; h4 B scanf("%d",&x);! B% U8 o* g* e* U$ o5 z
printf("The number station is:%d\n",halfsearch(a,N,x));2 o' D1 s5 Y5 W, T2 v7 U5 [
goto aga;+ m! B: t! }9 n. o" ~4 K4 R
}* ]$ e: r3 X6 u2 @/ a6 _
case 3:
0 _% M2 A7 \- P9 ~ U {creat(a);
! }; W4 b' i* j! f* M insertsort(a);
8 }# Y' y! u: ^- o z7 W print(a);2 g0 [2 v2 q$ r* |% j: g' q
goto aga;
7 u {9 n8 Z# X/ d0 P$ U) v }</P>/ \8 S+ r2 n) ^2 q8 }
< > case 4:$ ~# b1 c& L# l: c" C
{creat(a);
' L3 L$ t3 l- Q0 g mpsort(a);. N3 | n2 d1 M
print(a);
c/ w" p/ M2 R! I3 J4 I goto aga;
5 X \2 x/ ?+ x$ X6 i/ z }</P>
9 l& {; W( }8 ` D7 @< > case 5:{ printf("exit!\n");break;}8 d! f; _: a+ \: N F4 W* l
default:{printf("Error!\n"); goto aga;}7 Y9 Z% T0 ?4 u2 @" }
}+ U9 w& X) m5 X7 }7 F5 G
}1 P: o; w2 a- m3 C9 O7 H
Q9 G" W. `: x% b
% K; v( A! D; S q+ J
</P>
3 `! F0 ]5 H- B- _1 B/ l" a[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|