- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >4 X ?+ m' A5 N6 q( v( u2 C
#include <malloc.h># C, C# g7 O$ l% H$ H. V Z
#include<stdio.h>
' {3 g7 K# z+ C& ] c4 g#define N 11
4 V0 H- K/ g v2 D# [1 Y# W/*用监视哨查找*/& ]) G/ }, l0 W' l6 }6 D
int search(int array[],int n,int k), o0 j: w# d8 m$ y" ?6 w# Y/ a6 x
{int i;
! M' m: Q( y, B# z i=n-1;. }' l* Z+ [9 ^$ b5 R0 q, _" _/ W
array[0]=k;
4 {8 r0 w6 |1 D! i+ D/ Ywhile(array!=k) i--;
3 v5 g0 X. N$ g2 ^$ Yreturn(i);+ ]* S) Y" }8 B: `- d' L
}& |) @7 Z. F; M( f$ ^* E/ @3 j
/*折半查找法*/& s; ?5 B, y% N" v, _! {
int halfsearch(int array[],int n,int k)" P3 ^( G0 ?: w Y5 ~$ r8 _5 d" V
{int i,j,mid;
7 {, B& G: F7 h9 {0 u$ \4 m i=1;j=n;
2 b$ ~2 W6 Q* bwhile(i<=j)7 S" K8 w5 R- c w5 ]: O. d# _
{mid=(i+j)/2;
9 e/ L# w& N c; t: c1 G% D if(k==array[mid]) return(mid);
* `2 `7 `! {( \4 delse if(k<array[mid]) j=mid-1;- K$ X/ S* c4 l0 [* k& q: o
else i=mid+1;, ]; u2 f7 U [
}- s- U% t& i$ a) A9 b
return(0);
) q) t7 ?4 `. g2 y}</P>
+ z; {% E; n: i" `! Y3 [- u8 F< >/*冒泡排序法*/
4 R% h0 B+ U, @: |9 A9 e) ?void mpsort(int array[])8 q0 O' C7 F# y
{int i,j,a;
+ I5 Q# w& O* X0 i8 k4 [a=0;
: C& j) ]8 s" u2 v for(i=1;i<N;i++)
& |# B' B5 N* p8 l% ? for(j=i+1;j<N;j++)
3 v4 N) E$ p+ }3 X if(array>array[j])
7 S1 A! }$ I) X0 T' H {a=array;
1 b, Z) b+ ^9 f g7 ` array=array[j];
: r- O# H% J6 T3 b8 o8 c7 C array[j]=a;}) Y3 B% y9 V3 j1 w( n
}
' ]& c' R5 m$ `5 H) z6 [4 \4 Z3 |& o/*直接插入排序*/
) {7 k+ P% G0 B+ F2 E$ _void insertsort(int array[])
# ~5 q. O0 |9 e C{int i,j;( G9 D% q* {+ u& L5 d7 [
for(i=2;i<N;i++), X2 f. n. s; I& r9 A% F r. {
{array[0]=array;% l3 t9 @ `% D' X
j=i-1;& ?$ I6 v }2 [/ o
while(array[0]<array[j])& U- w/ g, Z; L& |
{array[j+1]=array[j--]; J8 H) l& ~& c$ q7 a
array[j+1]=array[0];
; v7 @- m' o( t0 `" f& i/ I9 a}
/ G8 t1 M: o. K9 f9 L}& P% Q6 y: i3 n5 d; s
}! S" U1 v3 s' Q! u
/*建立*/" y& X8 _$ D. M& r0 e
void creat(int array[])! G/ D! D0 R2 } ^
{int i;0 @ @& m( P6 J6 `3 q3 L; D$ V
printf("enter the array:\n");5 M0 M6 K0 z* |' y& c1 D" h
for(i=1;i<N;i++) r) |& X5 Y5 o& Y% u% Z' T' r
scanf("%d",&array);) D) T& W# k: a. X4 ]" R( r$ X
}</P>
' c% n) T% {! m9 j$ ?: d< >/*显示*/% S8 G1 g, y8 Q/ U( [7 n" b% H7 y
void print(int array[])7 X1 Y% v7 y" E
{int i;) G$ ~5 I: i$ V+ L5 p
printf("The numbers after sort is:\n");+ x. v" ^7 j& z4 W. P
for(i=1;i<N;i++)
& p3 X6 f+ Q, L" E) n printf("%d ",array);5 S! x/ k7 w L. n* N
printf("\n");
( u6 n' U( r. n' ]7 ?' S }</P>
. z a9 `8 M4 s# w& f! w< >& i5 K% x7 D, D! S
main()
/ ~9 }# Z2 o- W{int a[11],i,x,chang;/ e% H- O- r) A" Q( N( |
/*printf("enter the array\n");& \0 r, S$ T2 e! G- n4 s |
for(i=1;i<11;i++)
3 C) C" V( |! N { scanf("%d",&a);*/</P>
0 h" A% ` Q# @2 R! t+ M1 \< >aga:
( \. O8 U9 u5 v. { 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");
) w9 S4 ]/ Y: v3 i scanf("%d",&chang);
/ C2 [* s4 J" O& I. I switch (chang)
* Z6 l4 _. {( d& X) c+ w {case 1:& U. a# O# o$ `5 ~
{creat(a);$ T2 n' S% K7 u* E
printf(" lease enter the search number:\n");+ C( y/ \4 f2 A' ^
scanf("%d",&x);6 p/ g) K' z" G n o( W4 ]
printf("The number station is:%d\n",search(a,N,x));+ I" F6 n7 k9 V$ }
goto aga;
! L* G Y5 k( U }
7 }0 B/ u: f# G0 o9 j& z* C: G case 2:
/ E+ x" T! J+ Y k R { creat(a);
$ ?( u: q+ g: W insertsort(a);/ g, U* Z3 `4 Y* T. h5 O
print(a);
5 ^5 X9 t* q) u# @ printf(" lease int the search number:\n");
& ? Z+ C! `5 i4 q: h% Y5 d; y) f scanf("%d",&x);
/ [3 Q- {( h! w! h+ Z printf("The number station is:%d\n",halfsearch(a,N,x));: d6 T' V) B0 j7 T
goto aga;2 n4 o& {0 z4 P. K1 s/ _' q
}2 J2 o$ b* [; \- T+ I
case 3:5 b: D/ o: k5 V: s) X( f* W
{creat(a);
" X1 y; S( t/ y* f8 ~) b9 u insertsort(a);
y# V; r+ o/ i( j) d print(a);
' r% @- }7 t7 R. v goto aga;
* D7 F! Z5 {$ |) X }</P>* U' ^$ T; c: N/ l8 B
< > case 4:
8 V3 F6 D% G L& W {creat(a);9 b. B( j: Q ]8 G# J8 d& @* i: L
mpsort(a);" h$ f6 u- a$ S4 @
print(a);/ j3 i8 L% a) P7 A! i
goto aga;
* J4 J5 }3 c% r2 f: Q }</P>5 g% ~7 }/ R8 E$ V6 @% D. b
< > case 5:{ printf("exit!\n");break;}
' `4 |5 o; D0 Q3 n default:{printf("Error!\n"); goto aga;}6 U- r1 @6 i6 i$ k8 Q, x
}
$ i) M( O% L a; a}! R/ i! e8 F9 d$ r6 X% f, x1 b* a
( n& T# u# j8 h( f7 b L9 S
# E+ a" X' I( @$ w
</P>+ j- v7 q+ i* m5 S
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|