- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >
- u2 B9 [/ m% W& f0 n/ @" l' T#include <malloc.h>
! z' P" u4 v5 Z6 x/ L$ j1 s0 m#include<stdio.h>
p$ q7 L8 @9 o: \+ N. ~6 x) g#define N 11
& E t& p* z) |% [5 F! J. w3 z6 S. G/*用监视哨查找*/) }2 T' f7 [+ g) W# O
int search(int array[],int n,int k)- m" t9 a6 @0 u0 H7 I
{int i;8 x+ g9 b* l" r, X+ i( t
i=n-1;8 `& z% @/ R6 {: s7 [7 D. M- ~
array[0]=k;
. u. g# K! W# i g. _while(array!=k) i--;
2 b, d1 x4 a" B Ereturn(i);* T" W1 D8 M& ~& E. M# G" I, Z
}
7 s+ b2 @$ P4 W% O/ }% e/*折半查找法*/2 u. N3 ~, e @) \7 m
int halfsearch(int array[],int n,int k) l1 g/ _+ f) `
{int i,j,mid;/ `1 V& n- S2 e0 j0 p
i=1;j=n;! y9 h7 k% m6 k5 P
while(i<=j), v7 Y; [0 V# y
{mid=(i+j)/2;
1 r7 m- f5 f: q! l: |6 m( F$ i1 e8 q if(k==array[mid]) return(mid);
! `2 O9 e, _; I# S! _( pelse if(k<array[mid]) j=mid-1;
/ @1 [+ R/ l% F, y2 a else i=mid+1;
6 p% |9 S" o/ W% m) `3 l$ i1 E# D}
6 V( F% a0 B- @, P' rreturn(0);- S B. u; e0 r9 K8 J
}</P>6 L0 u: N* Q8 S2 k: Y
< >/*冒泡排序法*/
' ?& s& B' i4 e/ x- F2 vvoid mpsort(int array[])
( j S/ C3 I* X+ g! D6 V( ~- q{int i,j,a;
% K8 q( W$ _" x9 H8 C7 }a=0;
1 x4 |* B: F& u' M for(i=1;i<N;i++)6 R. c) x$ q" j/ K2 ]# e3 _3 i
for(j=i+1;j<N;j++)1 x& u% D$ ?9 n) [& P
if(array>array[j])
! C9 k1 Q% f4 }9 g4 T {a=array;5 d# V! n# \0 U$ Q, d
array=array[j];* a' o7 U' Z$ z' m/ W. v1 m" Q
array[j]=a;}; O# x) ]- d$ o. q- `, i
}
# O! _9 U: V- u+ s$ d0 ]/*直接插入排序*/: x# i+ ~# h# ], `
void insertsort(int array[])
' |: r2 C3 `# n{int i,j;; ^" n# n H; n0 o5 L" `" k
for(i=2;i<N;i++)
) m8 ]4 p+ U( r5 g# f8 ^ {array[0]=array;( ]/ w: l0 y ?
j=i-1;
# b m7 e7 @) ~( |while(array[0]<array[j])
% M9 K6 u% Z+ [3 L {array[j+1]=array[j--];
5 B: l P$ y$ Y array[j+1]=array[0];/ N! {6 _! A) y
}- W" h' i R G+ E6 g0 Q3 J B
}& m+ z) r1 S4 a& R* T9 T. P
}" K( r R6 Z8 o8 ]$ _
/*建立*/
% E; H: R; a, n5 ivoid creat(int array[])
! W- H) j4 N/ J; @7 ~ ^{int i;8 M, q# H D6 Z' _1 d
printf("enter the array:\n");7 i' s' z$ ~* Z* O
for(i=1;i<N;i++)
$ T$ ^6 N/ @( ] scanf("%d",&array);
7 W ?$ {9 j( X! o* |}</P>& C0 {4 c# C1 n- ?, u% m9 }5 f) j# x
< >/*显示*/% v7 P" \. ?# Z9 `: B
void print(int array[])( S6 D9 W7 q4 h3 r; T% k7 M
{int i;+ |" a8 }3 I* ]+ O8 g
printf("The numbers after sort is:\n");
, q4 h, M7 A* ~) L( Q9 |6 t for(i=1;i<N;i++); d- }) a$ g( C4 L
printf("%d ",array);
1 d$ o( n4 r8 R8 s# p" B" Y printf("\n");5 [' p! I; T. ]2 w
}</P>. m" d, Q/ o! w8 i
< >
6 s" A a+ U5 G7 L' g0 G6 c# H& ~main()
7 |) q7 J* |; u{int a[11],i,x,chang;
" q2 a( O2 W' C! k /*printf("enter the array\n");1 G7 q' s, h L/ m5 I: \! _, N
for(i=1;i<11;i++). J# @8 B9 M1 a' f& l1 G
scanf("%d",&a);*/</P>
( `9 u- j8 I ?- D* [< >aga:
0 I9 t5 c+ {8 Q7 T 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");4 z2 W% ?2 c% E; A+ S" m% q$ N
scanf("%d",&chang);
% J9 W* ?2 Y: F4 H$ o switch (chang)5 |" L a; B. X
{case 1:6 P# Z- A' Q& d0 x: ]- A
{creat(a);9 M9 z3 ~ o6 P' v8 A
printf(" lease enter the search number:\n");: w6 K( j: y& b& S a/ v: j
scanf("%d",&x);- G& q+ U3 J% O" f% u
printf("The number station is:%d\n",search(a,N,x));
+ G# T, y5 n: z6 c goto aga;
* L' _- B4 Q; r# \) a! r8 e5 ~ }
6 _ K6 j- a) r' G case 2:, [, c3 A: L* j, J
{ creat(a);2 F- v5 I8 B6 v1 t
insertsort(a);1 g# F; r! Z: a: N9 C. v3 o
print(a);4 g2 b2 C, S8 h8 D3 \' q
printf(" lease int the search number:\n");
* E1 G v0 N S7 o6 ^" J scanf("%d",&x);
8 u& `" s- e% c% k4 I' i printf("The number station is:%d\n",halfsearch(a,N,x));
# S3 h1 a" N/ ?! K0 q# o goto aga;" k0 ^3 T5 ~) s: ?3 k7 `7 F- m
}1 ?" l- v5 H/ Y' J; V) `) G/ R
case 3:
; _4 l) U. A: l* |& N# h$ S) X+ ~! f {creat(a);
; h/ N* N5 S8 T7 j% a5 f- G insertsort(a);
/ i( p) ~: p1 @& I: f6 C print(a); P( u$ d: r% @/ I
goto aga;
8 H- V" j- k% g7 P& A z/ s% B6 r }</P>
6 W0 m( _, l! M& ~+ F: Y6 U< > case 4:
% |) H p% {/ T" k9 ?/ J {creat(a);
; g- C8 G% ?8 H- V mpsort(a);
" z. V+ q# ~+ `; Q! H& M. p3 y print(a);
6 A( n9 a% s. {8 M goto aga;6 y6 m+ \ U, o' L3 B
}</P>+ R7 `. k. f4 K6 h8 h, R" H$ p1 T
< > case 5:{ printf("exit!\n");break;}
! T7 L: d" [1 W- A( s1 X1 k! w- w default:{printf("Error!\n"); goto aga;}
; X& E5 G2 ]8 U. n" _" T" ]}
) b" P. j3 c* t' A3 {}
+ k% f6 a9 Y- b. n9 c0 ? % @: F( e6 Y# z. L0 r/ S: M0 ~: d7 w
9 r+ v2 _# U/ _
</P>
" g/ J7 E5 m! l9 H% U[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|