- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >8 M" E8 d% q8 v5 J7 h/ [
#include <malloc.h>) B0 ~, n* Z& [/ `2 Q5 b
#include<stdio.h>8 a. e. B* w+ ]$ O, ?
#define N 11
" R5 b8 E x8 \2 V5 r. L+ {/*用监视哨查找*/8 V; k: y1 `9 i) A8 \6 |
int search(int array[],int n,int k)
; N- B" w' d+ Z$ o; A ?- F{int i;
; r7 f9 L* s# M- P i=n-1;5 [7 b8 q* K8 N7 C% R% z
array[0]=k;5 I$ a" l' o$ b
while(array!=k) i--;& ~2 U( T" G. C; c, k$ Y% ^
return(i);
4 I' e8 u+ j$ F+ L/ Y}( k W; Z8 o- I {6 Y1 M9 e
/*折半查找法*/
0 M8 I, G7 m3 D4 h8 I9 j/ p& z9 `int halfsearch(int array[],int n,int k)$ _; C7 Z; J! [6 o) ^
{int i,j,mid;* u* d( L$ n- J' \; _( _) Z9 E
i=1;j=n;; v( b+ L2 B4 a+ W' I; q
while(i<=j)
8 S2 e* |% J% b; A{mid=(i+j)/2;0 U6 k1 x6 K9 B* a
if(k==array[mid]) return(mid);; [2 L* q% |8 n% p: m% }
else if(k<array[mid]) j=mid-1;
5 ~; V4 T7 _$ q else i=mid+1;
c- E6 K7 Y# X}
: z9 t6 p. c, Y( W, ~* b: `return(0);
* T9 b. B8 E5 r3 Y. p}</P>) L8 O3 a H/ U" k0 e& d+ E
< >/*冒泡排序法*/
0 o/ d- T2 T* _9 B2 Ivoid mpsort(int array[])
- j) A9 Q. j$ [9 o: w{int i,j,a;
; v+ f8 B( B) O3 |6 }a=0;5 X8 M# v+ t1 d) O# v( j
for(i=1;i<N;i++)
) h- I0 \* g! s8 w% O' S F for(j=i+1;j<N;j++); j. M/ e, y) {3 ~! }
if(array>array[j])
9 [2 T; C* \& }$ X {a=array;
+ G4 b6 U+ z S: S% D array=array[j];; ~5 P2 r' X5 @# |6 R& e5 y
array[j]=a;}" m! v8 W6 X4 V1 p( {: p. A) p) J
}
+ ?1 X1 j; p! M) j8 t/*直接插入排序*/8 y: j. B) B8 L! \0 d
void insertsort(int array[])8 K& S( U7 |' P& u" s
{int i,j;
4 [, K: O% K: q) t for(i=2;i<N;i++)
7 p+ Q: P7 Q# ~4 x! j5 m! ]* W {array[0]=array;
) Y8 L5 S6 \3 J" ]% U2 J; Pj=i-1;1 d8 f( K- y' Q
while(array[0]<array[j])3 T$ E- [/ E: f a( Y4 @
{array[j+1]=array[j--];
8 c1 x1 `; {1 h array[j+1]=array[0];6 A b2 X# Q; j8 Z
}
0 Z6 g( f& K3 U* D! t8 d}; R4 L6 k3 V: E0 C9 }
}7 |% \3 e7 x5 V
/*建立*/
( h" O- d5 B$ o1 S3 dvoid creat(int array[])
5 t' B( i7 F/ C: Y{int i;
$ [& a4 k5 _$ C, L printf("enter the array:\n");" m9 N3 Y3 w# P% X. G: V/ f0 H. D
for(i=1;i<N;i++)
1 Q/ w( A& C- V/ u# p( ^( f. `3 i scanf("%d",&array);
0 V3 L( Q. y6 p7 `, }4 s}</P>
' o- _2 `% f, |. A< >/*显示*/- E1 D, O% I5 p( s" ~6 H" x
void print(int array[])1 n( a- A7 m2 P7 U/ A* l7 o/ s
{int i;
9 F$ X% F Z% A/ V* e8 A3 x$ O0 C printf("The numbers after sort is:\n");) [# f/ P6 o; x4 ^- n6 R
for(i=1;i<N;i++)0 Y6 ?9 Q# m8 ?+ }' L
printf("%d ",array);0 O3 s' H7 M4 m: ?
printf("\n");! i& r' j9 N" U1 [! S( F. r
}</P>
- E# I2 I. J# j( A G: Q4 ]) Z< >
) u3 `: D y9 e. R2 ]# rmain()
$ h2 o' {$ q9 P O5 \{int a[11],i,x,chang;+ y8 w; T+ M* k# i
/*printf("enter the array\n"); V! L1 g8 T+ q
for(i=1;i<11;i++)
/ w* |# r" ]8 L! y% B+ s v scanf("%d",&a);*/</P>; x3 \) Z u; n$ V+ w) l- m+ ?$ K
< >aga:0 ~; N& g: N/ e* g9 w4 |
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");; k8 s) ]3 O7 k3 M' ~
scanf("%d",&chang);1 x+ X* O: K( [; l
switch (chang)
' }9 [% ^* w" y( K) X- f {case 1:
1 S( G9 I" u# f! F {creat(a);
3 T! C# x+ `* D6 U: B; O/ E printf(" lease enter the search number:\n");; ?9 s0 }$ K4 @2 f/ V- n% w2 z& I( q
scanf("%d",&x);
6 P# s) t6 c# ` printf("The number station is:%d\n",search(a,N,x));
2 D. l) O$ E* l3 _' c- D0 r goto aga;
) o9 ]4 |7 w0 {( q3 B" ]$ _ }* x# n5 ?+ n, L ]* h& ^7 c
case 2:
" d6 f0 f" N4 E$ I6 R' d2 ~6 f% {- H { creat(a);
) ?" j% @0 n+ i; d$ y insertsort(a);
1 H/ x6 z9 ]; d6 E, t0 u print(a);
9 |, A( _+ t7 Y# B6 W printf(" lease int the search number:\n");
$ Q3 b) f7 B9 P* Z! f' @, a* u7 g scanf("%d",&x);" L/ H5 h% K5 K
printf("The number station is:%d\n",halfsearch(a,N,x));; d5 n$ M8 H1 u* t5 X7 C8 E3 L
goto aga;# f9 _7 l2 {! J9 I. X8 G( L. p
}
8 H G; x+ B+ s, Z( d# O case 3:( c+ |9 R& x5 c) T. V' l
{creat(a);5 a! Q2 O b+ b7 H' L z7 w
insertsort(a);
; {% P& z V/ D- i/ T8 F( L+ K print(a);) e" \/ _0 y" t% Z' j. E0 {
goto aga;
4 t$ T6 x) d& \1 E. r3 M7 K }</P>
9 ^/ ^7 r% r9 E2 k< > case 4:
2 B) y( ~: u* U) I4 {4 r {creat(a);
1 \6 R0 T% E) L. e: m mpsort(a);
7 D, m$ T) w0 s& ~ X3 \) v print(a);
, j4 z, {- Q& z# z! r2 b goto aga;
2 J1 E& {" ?+ G5 u }</P>
' ?1 r, B4 o( z) L/ i< > case 5:{ printf("exit!\n");break;}0 _& o D' J( ~( @+ I4 l. K$ Z; Y
default:{printf("Error!\n"); goto aga;}! f7 c; i' _" T3 @, R# X1 D
}
4 r3 X$ N* j% @}3 W, I7 F$ w4 V
) G7 F# v ?4 K9 t + W' p; `1 v6 o; f6 y
</P>4 B+ Y* E }6 M
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|