- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >/ _0 B* H0 _. v
#include <malloc.h>
5 Y8 V/ \1 S* H5 e, W' q#include<stdio.h>8 a$ a% M4 [3 r3 F8 k# @. a
#define N 11; p% \- w" O7 G4 V8 ^2 i- A3 F8 N- l
/*用监视哨查找*/- a4 R* c- _0 n' F8 D
int search(int array[],int n,int k)2 R9 d) X# ?3 y6 j' ]6 R
{int i;; Z! n# K2 z W5 u9 K, O1 O. j
i=n-1;
( _& d& \. ~. p0 v# M iarray[0]=k;% W, [: J2 P; B3 A: J- m
while(array!=k) i--;
1 j/ f; @ O: ^$ x2 c! N! h( \return(i);5 i; N! L5 `6 k7 n# X3 J: V
}4 c* n9 x. o0 H ~) W
/*折半查找法*/
' e# b& z5 X! o8 r& L8 e' Bint halfsearch(int array[],int n,int k)
* g% E& g' m ~$ I) V, p% b( ?0 D! l{int i,j,mid;
- {/ \. A- z7 _. ]1 M$ l1 m i=1;j=n;
: c, {9 Y! _8 D: u C! G0 Z2 C/ z4 hwhile(i<=j). D) `$ G1 A6 d6 n1 q$ _- S
{mid=(i+j)/2;0 e# W. ~4 I& D* g8 r) b* B* m
if(k==array[mid]) return(mid);9 y, N$ w0 |/ @& x
else if(k<array[mid]) j=mid-1;8 {' ]% ], j/ s. I* d
else i=mid+1;6 a3 a9 _" {3 {+ Z0 V
}
& _2 @' `- B! Yreturn(0);
; E' d4 Q' V5 U5 z" ]+ d: e}</P>* w, k% |3 l2 \0 Q, Y& a
< >/*冒泡排序法*/7 W# J3 a; ^+ e; Y, d. ~" ~
void mpsort(int array[])4 t- T \" b0 |9 t
{int i,j,a;
* j0 w6 `! q6 R; \" v! n# oa=0;
) W/ R3 W! X/ S+ Q6 B5 m for(i=1;i<N;i++)/ f. S$ s# `9 o; Q
for(j=i+1;j<N;j++); j# m6 u/ ?7 h0 N" b+ @; @
if(array>array[j])
( V' f+ Y# r1 v8 s+ h7 Y* H {a=array;
' X3 }$ X( e0 f) k& f- G4 G7 x array=array[j];
4 N; z- D* a" c. d3 I, B2 u. |+ T array[j]=a;}. e& k. b |$ U# {1 c
}* z f6 h7 A( h! u0 `- z, I8 p
/*直接插入排序*/
2 T. t' y+ X: f/ D9 [% N# ?& svoid insertsort(int array[])
9 ~3 H% @1 ^: [8 y( r1 _8 B( c{int i,j;5 P. l! B- D. _- F* p; N! \8 G
for(i=2;i<N;i++)
& r# V: l4 Y# z7 }, O# E {array[0]=array;7 O( s4 c- [# d! a. j. \; J5 x0 T* ]: Z
j=i-1;- m0 _$ S* Z# r s8 A$ z V7 H& Z3 y
while(array[0]<array[j])# f' y( S% J* n' J2 Z
{array[j+1]=array[j--];
" u$ T8 p7 D& N* a array[j+1]=array[0];) W( T" } e) x0 e# Q" v
}
& ~7 N9 K1 i8 N2 z8 _, Y" M8 l6 i}
& R& U. h( o4 h5 I5 Z}% D$ L8 M6 U; V" J& p
/*建立*/7 s. O: `& t% z6 h
void creat(int array[])
3 w, y2 v- N/ e. S/ {2 p6 s{int i;
9 {, e4 g1 x9 O6 i" o4 R9 b printf("enter the array:\n");
, x: V7 K$ t, U; q4 G8 W for(i=1;i<N;i++)$ b& y+ O0 Q. K5 f0 C& {
scanf("%d",&array);
8 I2 ~( L7 _. { F/ d}</P>
& j5 u! x; y% R9 b+ R1 h8 E/ [, V9 W< >/*显示*/
3 G( R& B1 C, a2 c' Y; Gvoid print(int array[])
; W) R4 i/ c& {, D6 a8 e {int i;
2 E4 D' `" D2 ~; T( W! D printf("The numbers after sort is:\n");" S# O5 h/ x) L* l7 q
for(i=1;i<N;i++)- v8 W0 x7 I) ]4 |. s8 a0 a: G2 \
printf("%d ",array);
! H3 u1 h4 F: U' v: y3 N8 Z printf("\n");1 q$ A3 n1 q$ p* Z
}</P>8 ^2 U% [3 e3 _8 |
< >
4 G1 [0 h7 f* [- f2 ?main()9 @9 s$ f5 Q: c* W+ B9 J% R1 J# h# G
{int a[11],i,x,chang;( z4 x }$ V) M6 {* e6 |
/*printf("enter the array\n");
" a0 Q4 M* J0 w" `3 A% D8 A9 f for(i=1;i<11;i++)
8 G7 R7 K8 f H7 {# D! p scanf("%d",&a);*/</P>
, x& P6 G" u0 J: @; x0 P* M< >aga:
6 S+ l& l* W4 \$ ~: L% Y' m, X 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 v) @: g z, ]; D scanf("%d",&chang);
2 K: B0 r8 l- l* x) S- n, o% C- s: [ switch (chang)8 f4 ]; ?# A* A: }4 b
{case 1:
* i9 }: n7 T% T* m. M( z {creat(a);$ [ R) ]; L* Z3 I4 [+ S; t' V
printf(" lease enter the search number:\n");& x& e& z' j$ e4 |/ x" R9 c. M
scanf("%d",&x);
) U( | o' N8 h& j printf("The number station is:%d\n",search(a,N,x));
* c% M% D+ f2 e1 o- t. m, P goto aga;
( [$ E% Y" f4 P, ^& O4 U }% O0 a* n$ k! _( X k/ a
case 2:
% _+ s" @0 z( ~9 T- a: I# C* Y { creat(a);0 D" d# s4 U7 [% f! ^
insertsort(a);/ \7 I6 X) i9 O4 l/ a! l( ^
print(a);8 _4 W4 Y' G2 ^0 e" V
printf(" lease int the search number:\n");3 B4 }; B/ i# ^2 t' i% a+ \/ f; v# @
scanf("%d",&x);
" p1 T7 s% [' K/ t& N9 d printf("The number station is:%d\n",halfsearch(a,N,x));" T+ E5 V( L r$ _
goto aga;
) Q4 R; s! u9 r+ X }
5 L& F7 P7 w! Y% a8 U case 3:2 g0 E2 l7 a+ s0 k
{creat(a);
, X, _, O1 x' p* M% v$ u insertsort(a);
1 ]8 m+ F" z( a* ?+ Z% h( v print(a);1 C; J9 E; u- |. K L/ s" i
goto aga;5 x* _- ^; v/ Q4 c
}</P>) R V, U6 n( X' E
< > case 4:8 a8 w: C0 t$ W1 d! B
{creat(a);4 S# i+ \. X" [( X; y" ?' |
mpsort(a);
. m$ T8 a% y5 @. d( k! Z0 D- H print(a);
8 H$ |! j% P& z& { goto aga;# ]0 F l' S! S
}</P>4 v+ n4 \: R! \1 i( d# t; ?
< > case 5:{ printf("exit!\n");break;}
- h4 z, m: U9 d- V5 x7 S# M default:{printf("Error!\n"); goto aga;}( w- c5 n; ]6 u5 C
}
" S- |0 [) W$ D}
% q6 O; v$ P" X& z
3 n) v8 S# Z& e' w' X 0 @& i! `" F* Q0 c/ v6 o
</P>; M$ X/ O- R7 G) }, p% S
[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|