- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
' T- J$ F7 \4 b5 y2 {#include <malloc.h>+ R% g! h5 f+ R; |: J7 B
#include<stdio.h>0 `* d) ?2 r/ w% m1 H
#define N 11
, m$ a6 K9 z) W/ c6 m8 h$ U: H/*用监视哨查找*/
1 }& A v' ]4 B( ^4 E' Aint search(int array[],int n,int k)5 z& ~ _( J8 {- B. X
{int i;
- u) D" z9 T# j, T% d% X. { i=n-1;. W6 L/ |. x1 \4 Y Y: f
array[0]=k;
( t3 P V$ v& \! h! h8 e; k$ ~while(array!=k) i--; i6 `. }& ?- ]; S4 l3 Y
return(i);0 r0 h, w8 M! F! P2 }6 w
}$ s1 C" G' T( k2 u
/*折半查找法*/) J: ?* b, a7 W, Z( A r8 l
int halfsearch(int array[],int n,int k)# T" ?! } W! j: e2 S! x
{int i,j,mid; { L) O0 x, C& Z% l
i=1;j=n;
& t7 e+ p. l/ W$ t C" pwhile(i<=j) x* o4 \' a: T6 A Z% G& f
{mid=(i+j)/2;
8 j* U$ ?2 T/ }3 K% _3 T1 T if(k==array[mid]) return(mid);7 r" p7 n! d4 u; V
else if(k<array[mid]) j=mid-1;4 B9 `; E: Z6 l" R
else i=mid+1;
. l6 J0 N. v, H1 @( y1 |) m' @}
* U5 S4 f8 g6 G+ I6 B V/ ]- Areturn(0);
2 M; L6 ]& D) Y3 Y1 G5 E1 d0 `}</P>
& l# @, }9 P* t6 _" L5 J< >/*冒泡排序法*/0 y0 g: W" J4 W6 k. O5 x7 r
void mpsort(int array[])
- s* O1 w9 n: ^8 m' |& m n{int i,j,a;1 g9 I! S% X7 g- m, P; ?
a=0;5 s. b+ u/ W n3 x
for(i=1;i<N;i++)
* X F/ i# S0 z) V8 a for(j=i+1;j<N;j++)5 B4 }+ G+ w8 |' y5 _+ @( O
if(array>array[j])" C2 A2 B# [. }- J% C
{a=array;
7 A1 H# E2 [1 G) B* M8 D8 w% n$ e$ C array=array[j];
, d) F7 H& c, K$ X array[j]=a;}
0 h2 a; C) E$ e$ ~/ Y' S, L}
5 Q6 H M6 O0 M0 ?/*直接插入排序*/- ?0 A2 u7 ~; X `# U0 B
void insertsort(int array[])* I0 @( H: ~; Z. }# m, T/ X7 h
{int i,j;+ s( z2 v' D) C( ?- w" S
for(i=2;i<N;i++)
' V0 R; M1 Q, I$ N {array[0]=array;
2 ~0 b8 f6 }9 A+ q! S$ mj=i-1;
3 Y2 Z* a8 @, N& k' ]0 V0 {1 ?while(array[0]<array[j]); p1 Q: z# }. u4 j
{array[j+1]=array[j--];
) ?0 P% s8 ]2 ?- @9 j/ e! W array[j+1]=array[0];
- F% L! f. n$ K3 M}
0 S, f! j% p: A& @% P4 A, A}
( W" P' Y- h) f- V7 C}
8 X! f J% t) ]# P& Y+ b( B) ]/*建立*/! |7 w7 C9 J1 k4 X$ `5 F
void creat(int array[])! ~; ]. P( ^& k* v4 N3 Y6 ~' H
{int i;
% N5 \; g& ~( ?' c printf("enter the array:\n");
/ z8 ^ j% ~6 W, O* J6 @8 X5 p; q for(i=1;i<N;i++)
. i8 O0 c' l4 _ scanf("%d",&array);; R* ~2 d7 x. u; B. ^' L
}</P>
' D3 c0 _: w- m< >/*显示*/- O& H* U2 @! Q
void print(int array[])1 |. K! f3 [ P4 |8 f
{int i;
8 w1 ~' d5 V: A1 h3 B# X printf("The numbers after sort is:\n");
) L8 Q F$ K! m: ~& z for(i=1;i<N;i++)8 a' \! ~3 |9 r& S
printf("%d ",array);8 y# L( r9 }1 E$ n! ]6 M
printf("\n");
) N$ ~. ~$ i7 M1 I F }</P> o" e5 k& c+ r! J
< > Z, ~) y0 s6 M$ B) K) c) i
main()
u" ?" n7 Z, H, ~{int a[11],i,x,chang;
6 V6 z1 @; H9 }, T+ _- z /*printf("enter the array\n");$ a" C9 j3 [% {; X
for(i=1;i<11;i++)" {7 |! S( F, H- G( {# W: ^
scanf("%d",&a);*/</P>+ \1 n5 e0 S1 D. v/ k
< >aga:' j6 {' U- T2 P9 Y6 T( a
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");/ ?' z5 Y9 i% h6 F
scanf("%d",&chang);
/ N) I( K' Q3 `2 l7 m+ [5 B switch (chang)9 m* U% d9 S# m% U ?( w; A* Z$ ]
{case 1:
8 y$ F& w" I/ q1 U {creat(a);% P" w) U9 f1 V% S
printf(" lease enter the search number:\n");
1 }4 W' A4 e% j7 \2 ?: b scanf("%d",&x);
% N5 |) l: `8 b7 z& b printf("The number station is:%d\n",search(a,N,x));3 L5 E4 ?. `5 n% U
goto aga;
3 x. S! [# U- @ J) P* m+ Y }: O. {+ w: P% M3 k
case 2:1 r: _3 M% F4 T) Z5 z7 h z
{ creat(a);
9 }+ O: B0 L! s5 V; l1 g3 s insertsort(a);; Y, E6 k6 c2 F3 f
print(a);
7 a0 }+ _+ [7 W& I1 X1 ^ printf(" lease int the search number:\n");
) [; H6 \6 \" j scanf("%d",&x);
& @/ \7 j! o! T, ? { printf("The number station is:%d\n",halfsearch(a,N,x));- Z& Z& r1 a! [' {) Q
goto aga;& D3 f% k" s3 B' T
}
& T! N' _4 ^: \) C+ r; l' D; { case 3:5 c( c/ {# U3 o$ Z
{creat(a);& P3 o! s1 R$ k5 W% C
insertsort(a);8 e& w& L @' P+ y- p
print(a);
7 l& ^& L: { z# g goto aga;+ M6 Q6 l9 |2 ~' c( a5 ?" r, Q! Y9 h5 {
}</P>
# ?2 _; r7 w7 k! B< > case 4:% F: v: c& F& H; r
{creat(a);
* r2 u* @* B. r/ f9 F: ~ mpsort(a);/ i% Y1 T) |, d8 c; B) o
print(a);! H2 g4 \( P0 k) {
goto aga;$ P" U& ^% v/ a) G% @
}</P>3 r" v$ {6 |, s/ T7 {/ v
< > case 5:{ printf("exit!\n");break;}
+ r5 e- ?* G7 c. ^, q+ u3 W6 T3 b0 p default:{printf("Error!\n"); goto aga;}
1 h1 p0 h/ U6 e. ^}
/ B8 F0 M' D# M4 _: }. R* I. o* c}( l2 d- W% l9 [+ Q4 |' P
/ _, k2 a1 a( n& M4 Z
% {* f3 {. [( v( p+ |6 m+ C</P>; M: J4 H4 @' d/ `
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|