- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >( U, O: W8 J8 m2 @0 w0 t: E. Z4 n
#include <malloc.h>
8 y9 _* u5 N0 I1 I8 O7 U#include<stdio.h>! `, U! a1 Q" {7 Q
#define N 11
( w6 x5 G' k' X, V/*用监视哨查找*/7 `( L6 g8 ?6 Q1 _9 S8 l
int search(int array[],int n,int k)
/ r( m; P ~: l6 K{int i;
' P Y- T1 u' c4 w i=n-1;
) c5 b" k( f! V* F4 y) v5 parray[0]=k;
& @& H; X8 ] D+ I* z9 ^9 o' R I) Pwhile(array!=k) i--; N" l# g! g( o! u9 a
return(i);8 O+ p/ w$ M( r4 D! y [! g
}* _6 z' g; H, x
/*折半查找法*/# V8 |( Z3 {- X9 U
int halfsearch(int array[],int n,int k)
# X4 R) c9 Q9 @{int i,j,mid;) l+ M. V0 b: i
i=1;j=n;" {0 g9 m- I8 C8 B' F, P
while(i<=j)
a" w) p- z% L/ t{mid=(i+j)/2;' F& |% w, v+ E% [
if(k==array[mid]) return(mid);6 y8 v% O8 c. K/ e- o, i
else if(k<array[mid]) j=mid-1;0 m, w- X/ x5 y6 |4 g) Z
else i=mid+1;
( q2 s1 z: [" K' l4 D, d}# `! f w3 C, z+ K
return(0);
0 t. M6 h% U" J; e" `3 L}</P>5 U0 n* z- b, F( Z. r+ V7 [
< >/*冒泡排序法*/
! g3 E" L4 T o% T3 N4 Avoid mpsort(int array[])2 ]( k( Q% q D2 W, u$ b
{int i,j,a;8 o3 i8 m7 x) l: s& U" x* ~1 O2 }
a=0;( `5 J5 x. G1 T* n' L+ A# R
for(i=1;i<N;i++)
o( v; j% `$ L9 P' M for(j=i+1;j<N;j++)
{0 t8 `( H- z* a- M& Z if(array>array[j])
4 ?2 T2 Q V) @- l. z {a=array;
) z/ C# Y; x6 u! o$ O) a6 x array=array[j];
% x4 p2 W9 S |4 v) | array[j]=a;}
" D' D& ^- u" C3 r. D+ ?}
8 B* {6 |1 ^ k3 ~8 H" U/*直接插入排序*/9 l6 E3 N; G+ K$ D6 m0 E9 x2 f
void insertsort(int array[])8 j" k9 T+ A7 a" U
{int i,j;1 Z. u, P4 p- m# o2 y2 S% ^
for(i=2;i<N;i++)* u2 `/ G: |" ^1 k& t
{array[0]=array;
; s, f2 {% F& r( @& Hj=i-1;: q1 N* {: ^9 l$ Z7 f; s* m P7 j1 d
while(array[0]<array[j])
6 _9 x" Q# H' H" n. y {array[j+1]=array[j--];
- u$ @8 Q# P8 Q* X& i% f array[j+1]=array[0];
/ i, I) t# h8 ?7 z} _ ^* _4 z; ]0 @* W
}& b- h- I5 o8 x" K. n
}
6 x$ _; l& p* Q/*建立*/- d3 A2 ?' {* c8 ]( |
void creat(int array[])
1 t' `+ G! @7 H- c+ T0 S% I+ K{int i;$ c6 H) \" p& R" m' v! W
printf("enter the array:\n");- o0 i2 J! Q6 Y9 j7 [
for(i=1;i<N;i++)
# x3 N f! S V' W. |9 K P9 W- u scanf("%d",&array);
, y3 U" A2 k+ Z}</P>3 U. _% J0 Z w6 M% S
< >/*显示*/
# ?( B* G* k- I; h0 N: Pvoid print(int array[])7 k9 _- T i& \" ^* \
{int i;$ R* R9 w: q" u; i7 \
printf("The numbers after sort is:\n");
" e- K* `! L) [" Y+ C* W* D4 _ for(i=1;i<N;i++)3 R7 u5 g3 P0 c
printf("%d ",array);9 d: A- I9 e4 P2 s' x, z0 \. e
printf("\n");
4 @3 j; R* h, J {$ k }</P>. ^$ z: N7 n2 u# B, Z$ b. S+ X
< >
5 [- g# p) e; E- x& jmain()8 W$ `% J; l; F+ Q7 S/ ]4 e. T
{int a[11],i,x,chang;$ V# L6 A5 B! l' T
/*printf("enter the array\n");4 M9 ?2 c4 l' D1 C, n7 C8 E( w
for(i=1;i<11;i++)9 @+ K7 f* L" H; C) \ t( {( k
scanf("%d",&a);*/</P>
% q- w7 y) ~+ @# `( p< >aga:# O' ~0 v" ^! L1 _
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");
8 H* h, U* V: h8 A/ ` scanf("%d",&chang);
; E9 X# {' ^9 K. l. k- p% W switch (chang)& P$ j t4 A( ^7 z% q: P
{case 1:
) B1 y; V! l, ] {creat(a);
& G6 h6 J: c/ E2 N8 W printf(" lease enter the search number:\n");
0 l) I+ R7 A' a, S scanf("%d",&x);- [# ^9 h% x( D# J, t/ t
printf("The number station is:%d\n",search(a,N,x));) y. k# j7 ^" T \
goto aga;
: n [- U' ^3 l+ ?/ K+ _ @% f }
% [/ v1 ?5 Z2 J case 2:( @' ?# G+ c6 H( V8 g1 c8 \6 O# n
{ creat(a);) _( b. X8 O8 V9 x
insertsort(a);
- p" d0 h( h7 U7 d9 F! H& Z print(a);
4 u+ N& ~- R6 |7 `! `! l& e0 F/ H printf(" lease int the search number:\n");& ]3 Q+ @5 i+ v9 i/ C+ i- a
scanf("%d",&x);
! H0 d. I8 A; `% u$ i printf("The number station is:%d\n",halfsearch(a,N,x));# E; L/ a$ Z4 t5 x" }
goto aga;
) i0 Y% c% I, m# Q8 b* D- z }% w; ?4 P: @) s$ @7 `/ X
case 3:. k- i0 E( i& c% [
{creat(a);
) e# M. X) @' O% ~ insertsort(a);
5 z+ u0 u" i3 c8 g$ A& E print(a);8 ]6 _: |( r/ I; ]# r2 U" [$ u
goto aga;
/ s& e6 ~3 A$ N; ~1 E5 p }</P>8 A0 Z4 o+ Q8 Z' H% V9 g1 o
< > case 4:
* E6 y/ u' S/ U+ G3 g {creat(a);8 h- H; l$ q9 S a
mpsort(a);
4 z: \: P& Z7 Z3 y1 q* t print(a);8 h0 ]. N7 C5 e1 {- c4 r! O
goto aga;) a- P# n5 n4 }, B" R
}</P>. O+ v. ?7 t0 T2 D1 X
< > case 5:{ printf("exit!\n");break;}
3 i! _$ m, R" I/ l* k default:{printf("Error!\n"); goto aga;}
: P2 P5 {) |( R2 b6 j& C8 K6 d}$ H! N( _7 `+ S. g3 d
}
* [2 w) u7 n- i1 k: N' p
5 x' d, l+ j5 H, Q! _. F
+ G: r/ a9 h* j3 R) _2 |</P>
9 z" k* O; f Q. C. p[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|