- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
, y9 ^. U) p8 O. o#include <malloc.h>7 T5 Y+ _) g; l3 m7 |# |
#include<stdio.h>
5 J! z. {. u/ O; _3 F/ G0 J#define N 11
9 N. W! b0 h/ _/*用监视哨查找*// f' D: K4 u5 S, q6 O4 d
int search(int array[],int n,int k)
2 P0 V0 n7 m* P! }0 _" _) X% I9 q{int i;
B3 {! o, O& t. q* v+ ?; B i=n-1;
- i$ s$ ?3 l; Y8 u: [$ x ]0 J# y0 Parray[0]=k;3 e" }3 l# u# a( o# [
while(array!=k) i--;
- B4 W' q5 L+ U! M! s+ ireturn(i);! ?; D! R! ?/ H7 m) | Y& t5 |
}7 ]6 c8 ]9 X4 e" W A
/*折半查找法*/
+ Q) ~: Q z- o, s. L8 `int halfsearch(int array[],int n,int k)
! b. n1 A8 C& n4 x7 N3 N{int i,j,mid;
9 L" h5 [. U# G3 Y5 q i=1;j=n;
) z; S# Q! l9 I* P* swhile(i<=j)
1 u, `$ B) `* M6 M5 ]8 T6 T{mid=(i+j)/2;
6 u2 h$ i# z, H if(k==array[mid]) return(mid);8 b0 B# H w, T, J: _: f+ b o8 r. s/ {
else if(k<array[mid]) j=mid-1;- ^, I* J" m& W
else i=mid+1;9 `3 } ~6 C: j& j
}
B* a. Q# B- ~0 H4 X* U0 w3 Treturn(0);
, X0 x7 g7 {& K' X8 E( M8 Z/ m}</P>
# P8 [! \" d4 l< >/*冒泡排序法*/" x2 W1 d- s! x) B7 j
void mpsort(int array[])- F& d* s) S1 M9 d2 ?. t* x) N \
{int i,j,a;
0 A. \" y( E* ba=0;3 z6 H$ [' @7 i* H, P0 V, c/ F8 ?
for(i=1;i<N;i++)4 ] [# r: e& @$ y+ k
for(j=i+1;j<N;j++)' N4 t$ E5 O, B
if(array>array[j])9 j8 g+ w" x; s5 }6 Y) |! c4 D
{a=array;0 Q5 |3 D) ]( c' h; T
array=array[j];
. L# Y; v% d" o3 o0 r# X) N3 s array[j]=a;}
' g) s! o6 N- R/ y}
( {; E4 C4 a! V! T8 _' p1 f/*直接插入排序*/
. r3 z/ v( J7 D6 t& ~/ A& dvoid insertsort(int array[])
# e7 r8 D" M' b: J$ d! l{int i,j;
- J" v& M \% _9 {7 c! y' \ for(i=2;i<N;i++)
% q' j! H* a6 F- [" ^, C {array[0]=array; v1 m# j$ e+ p4 Y
j=i-1;. i2 [1 C) I+ c; D" j
while(array[0]<array[j])
. k2 n2 T; E/ W2 d1 v* B4 [- i2 H {array[j+1]=array[j--];; k1 @# V$ ]$ {% P3 Q4 z4 Q
array[j+1]=array[0];6 ~* a5 E: r1 M4 F
}. y. x. p' A. Y
}
9 }2 V; R1 z/ O8 x. ~7 M6 |} W3 [2 S- c* a" p
/*建立*// n9 D- C s/ c2 U, K+ V. J
void creat(int array[])
: i$ Z9 P/ L5 ^ o, W% A; ~{int i;
) U3 j3 ?7 ?9 T% }$ I, X9 T printf("enter the array:\n");5 X8 R7 `9 {5 S8 D( Z" G4 S) M
for(i=1;i<N;i++)) M. w; B5 e( b4 m
scanf("%d",&array);% p/ T& X/ P9 b& B4 t
}</P>5 u5 A4 C. E4 ~' A% d( v
< >/*显示*/+ a. h, s; O3 p
void print(int array[])
1 W. q) v3 x: T {int i;* U0 b: a: h: G7 ?8 B
printf("The numbers after sort is:\n");/ @4 Z- q3 t; p- \0 u e
for(i=1;i<N;i++)
: p \; W2 A" D printf("%d ",array);
& g* l9 E0 S" Y: y- W printf("\n");
# M$ V- p2 Y# H, @) h; C5 I6 j }</P>
' |" g: T% i! z< >
" {: f9 r0 R) T8 }) G* K6 @main()
! A5 n) d! {+ ^- @{int a[11],i,x,chang;( k! b& `& Z& ~# x
/*printf("enter the array\n");0 A) x' k* B$ W+ S5 F6 R
for(i=1;i<11;i++)9 \5 z4 e# P3 r" O7 q, h D/ D
scanf("%d",&a);*/</P>3 m; S2 J. Z2 M4 ~3 m5 o
< >aga:3 P+ S; A3 f6 j2 G( N6 u+ D8 A' F' e
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");! p% b0 s: g+ Z3 v
scanf("%d",&chang);5 b. J* H5 w7 ~
switch (chang)0 L0 m, J# N5 N9 ~) O3 W# Y
{case 1:
' m& U( [& D% A9 z# I; I5 P {creat(a);& \ T0 c' `) }7 A% }
printf(" lease enter the search number:\n");. A1 e. w) Z4 L; [) Z
scanf("%d",&x);* g1 q2 _9 V5 L3 f
printf("The number station is:%d\n",search(a,N,x));7 ~: z$ E* w7 W1 ~! |
goto aga;
6 C# S* w3 q, Y% s6 l9 e/ f; P }3 D8 m- M& i; H/ c
case 2:
# m' \, H9 f, |7 s" ~ { creat(a);. `, \! s8 ]! \1 q' z# X/ ?. f
insertsort(a);
4 `) E: z% f( S2 q6 `+ p- V5 G# t# d print(a);
" @" ^ q' v' y" F6 V9 s printf(" lease int the search number:\n");" Q# |) T# E0 X. a- Z
scanf("%d",&x);
. [0 Y% g6 l; ~. { printf("The number station is:%d\n",halfsearch(a,N,x));
1 Z c1 d/ I$ W O* E goto aga;
6 Y2 K/ h2 @( I$ U+ h9 D- q }
+ V' x6 |. X' O4 w9 v3 M case 3:5 {% h; `4 O) @! s. w* E
{creat(a);
) Z. h7 U3 Y& L% p% y/ O* b insertsort(a);
, O+ N9 }' u0 ?' F1 W% N5 |: z& Y print(a);
& n. N6 U" W4 p: N5 z% b goto aga;
% k7 b4 ~8 q5 R }</P>' a& I3 F; j/ S2 \+ M4 w1 p
< > case 4:
5 s, | a5 _; o* Z; B) k+ M {creat(a);
8 C1 c9 S5 Q& ?5 }+ G mpsort(a);& v0 s5 K. W& |, q& ?+ {
print(a);3 G) r; p" p/ ? r
goto aga;
2 s# R$ o! @) } }</P>3 F* ^- c" U& A0 Z
< > case 5:{ printf("exit!\n");break;}
' y. ]0 ?8 g b# M5 Y5 m default:{printf("Error!\n"); goto aga;}2 Q7 {. s2 n2 H+ \$ P! ~
}0 g: t, a4 d* l7 s
}
7 m. K: ^9 y7 ~8 V , W k( f5 t ^ a, x, O
: y3 @7 L- ~; U5 Z8 G$ W
</P>) P9 @/ o/ }2 O2 `9 v7 K& A
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|