- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >" l3 f! g/ |, `1 F! K' T
#include <malloc.h>' Z% k, e9 v' _, I2 {8 {4 d5 ^
#include<stdio.h>
! c, k ^6 c9 k3 y% H) ]3 ]#define N 11
7 E4 Y7 f8 s( L. W/*用监视哨查找*/! ~, W2 Q9 g9 G5 p( |) g; L- p, F
int search(int array[],int n,int k)
) }1 T" t. P9 l, c2 p4 w. b/ }{int i;
" t/ r4 D' T8 A1 L i=n-1;
) m; x% g) n4 T; _0 F( p9 ?array[0]=k;, @/ h% W3 V, M- s9 \' l
while(array!=k) i--;
4 @# ^% u6 ^; @; r; e, ?& Mreturn(i);4 [; n9 B, ]) z
}% V/ R3 j3 D7 P8 t7 ~% e
/*折半查找法*/9 T; ?4 n2 ^2 F6 X; A
int halfsearch(int array[],int n,int k) h" j" k9 _1 h, h: v0 x
{int i,j,mid;
2 p$ W& d( U/ z& y3 | i=1;j=n;
& V, |2 B' ]4 u0 C* lwhile(i<=j)" r* _' S% G4 E9 y. t
{mid=(i+j)/2;
R8 c# r+ c7 U' b* _ if(k==array[mid]) return(mid);
" r$ C( i' w4 S6 d( G( Gelse if(k<array[mid]) j=mid-1;
0 s: r8 y3 }5 v. `* d& b else i=mid+1;
( P6 z. a3 U. P- h& s* Z* y}
8 k, B% a1 V# Q3 y' `3 treturn(0);
' j) f& t/ l. G2 I9 `}</P>
* U3 g. T$ ? \& R. E< >/*冒泡排序法*/' v1 N7 L2 ]1 i+ o# X/ X: V9 u
void mpsort(int array[])
2 j% G3 w( g9 v2 q0 x5 h4 j{int i,j,a;6 W" }# J! _) S9 a# x; g
a=0;
1 a6 v( [$ R2 t0 D" O# Y for(i=1;i<N;i++)
* n. S5 i! P$ b, d for(j=i+1;j<N;j++)3 L L Z0 {6 o6 |
if(array>array[j]): o% s9 k% {6 H- f8 |
{a=array;' a L1 s: U4 P: a1 g
array=array[j];
7 m6 A# i- {% ~" o array[j]=a;}
5 X/ c, b" ]# P}; r g1 E" V2 c0 Z& o/ [7 R& k# c
/*直接插入排序*/: ]/ ]1 r6 B5 q2 @
void insertsort(int array[])! N" L1 F' T& p/ u" ?; ^
{int i,j;
+ a9 k' `" c+ [9 }5 F) I# g8 Z for(i=2;i<N;i++)
1 o5 ^+ c) f% r( [8 ~ {array[0]=array;
5 c, x, B- p5 B* C1 b, L- nj=i-1;- `/ {( A7 n3 m% Y# q5 H
while(array[0]<array[j])4 D% X' }# x/ g; q/ c. F
{array[j+1]=array[j--];+ M$ \6 E- {4 Q8 O8 `2 E8 U
array[j+1]=array[0]; a7 C, @; ^1 c) M' \
}
s3 O8 U* k' E. f3 {; C0 J, U4 s}. n; {1 _; k. w4 ~
}5 @' S1 S" C' v6 ]- ~
/*建立*/
" L& n9 S* U, d1 w6 Z" ` U" z; Jvoid creat(int array[]): P, {: l$ N% t/ _
{int i;
. @( O# O6 S0 C! V printf("enter the array:\n");
& T# [% d: d5 { {, x" k O( ]7 L) w for(i=1;i<N;i++)
( t Y( [' z' v3 R4 ] scanf("%d",&array);
& N) S/ Q$ b, G2 V2 R}</P>
$ `8 J* y$ ~' m" H7 D! g< >/*显示*/9 i- e9 D: D* q$ d U# D
void print(int array[])1 h, ?! ] R: ~$ U2 r. s
{int i;
: G. U+ @; P& o0 d: [ printf("The numbers after sort is:\n");, \9 D: x! r( v: }! F @
for(i=1;i<N;i++)
9 P Y9 @, A, q' `, B printf("%d ",array);
& @. S. Z/ Y. N- a% l: K" `# u printf("\n");( X9 \3 P& W* E. @6 r9 p1 M0 x
}</P>% I$ J7 t' ?- t, H' Y1 {
< >
% h J& ?. L, T) G+ \1 t7 gmain()4 }( H- R! ]2 t% _7 ?7 C
{int a[11],i,x,chang;
: ]; R4 U- l+ x. ]* L6 D% \- ^% U /*printf("enter the array\n");& V+ T0 Q; Z9 h
for(i=1;i<11;i++)
3 q j: j7 `; E7 y) @+ F scanf("%d",&a);*/</P>+ x4 C+ _0 f4 m& v! r5 q
< >aga:
; g; j1 m* m9 ~# g y% R( ] i* N 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+ q% C4 m5 @$ U7 K6 { scanf("%d",&chang);
1 }. b2 @3 i9 e, W switch (chang)
$ f* a, P9 c" t( j) K+ ^9 @: \+ B+ f {case 1:
4 W7 B$ q) e/ @- ~( W9 k# f {creat(a);# _% s% t4 Y( p# ~# x4 i! U$ b
printf(" lease enter the search number:\n");
" _9 k" ~+ {3 W scanf("%d",&x);1 a9 J( f+ y/ K. ^5 w2 ?( F
printf("The number station is:%d\n",search(a,N,x));/ C m/ ?4 N( Z h
goto aga; j4 C7 }9 X. T( D1 K/ Y B
}! U8 I- u* V+ j+ q0 M
case 2:
6 Q7 {* h: W8 a7 G { creat(a);2 [# [& r8 l; M2 M8 O I0 g
insertsort(a);
/ S9 \( r% b W+ z2 n2 R print(a);
4 d: \( t% H4 ] A: L$ w8 H# r1 f printf(" lease int the search number:\n");
( ~ N# A5 R) \" `7 f" B scanf("%d",&x);
, m( D6 ?# K2 j1 ^ printf("The number station is:%d\n",halfsearch(a,N,x));$ A1 G2 m! m5 M, }- M$ c# f
goto aga;
/ I8 o4 X0 M$ x3 x0 |, e }
! k _. W# \' S8 N" L5 n2 ~ case 3:
. [8 B% ~, @: {3 b {creat(a);
. W% |$ C4 ^6 n! |3 ~ insertsort(a);
/ C1 B/ `4 x1 E; f( v print(a);: `& L4 t4 U l/ B8 z9 g6 c0 {
goto aga;
2 x% o7 N& \/ s2 O( ]2 O! S g+ v! N }</P>. c9 e5 O+ T2 A) q9 A* W/ p8 v7 e
< > case 4: b: c. S; d2 h+ H/ [8 m
{creat(a);
0 ^. a9 w; `* {4 V mpsort(a);
/ k7 G% ]4 S5 n print(a);
& a \- B" V4 ^+ i0 b! Q: w goto aga;
& d/ q+ t1 o# e8 Y& T- H' z9 [ }</P>6 d5 @5 S2 s+ K5 c; R
< > case 5:{ printf("exit!\n");break;}
! P* ]5 s1 ?% p default:{printf("Error!\n"); goto aga;}* c4 g, W& E m% M+ f A
}
; T6 |. t6 h; h3 W2 B$ N& R, b. L4 ?6 O}, b( u7 d" Y4 G9 K' G& |, r
! ^* O! Z+ K6 u5 \+ ~. n, F
: s1 D& g4 W, v</P>7 U3 G2 m$ b6 v/ m- t/ G
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|