数学建模社区-数学中国

标题: 排序与查找方法 [打印本页]

作者: 厚积薄发    时间: 2010-5-31 17:42
标题: 排序与查找方法
#include % e8 M7 Z" _- L3 L
#include
) d% `% n: F! v+ S: K#define N 11
: F8 h: m2 }4 v/*用**哨查找*/
( O4 `/ y3 `+ v9 M) Hint search(int array[],int n,int k)
- U' r2 V3 m: X8 h, I( e4 W3 @{int i;& X* U) M8 g: ^, o3 l1 K( d* o
i=n-1;" f7 s) H: K" R! g3 E
array[0]=k;' K: e% l; p  h, f( Q0 x9 l
while(array[i]!=k) i--;
: J5 O# @% y/ M0 h  l& t9 [return(i);! _  E. ?: ^7 S- e
}
( `# F: \# u. w/*折半查找法*/  H8 f2 P% Y( V" }1 d( `* E
int halfsearch(int array[],int n,int k)/ G$ Q4 P, R+ R1 i8 p/ q) Q; ^
{int i,j,mid;7 E$ S# ?7 M/ Z
i=1;j=n;
; M! C  Q0 J3 H5 q, @0 d/ twhile(i<=j)# H7 f7 R3 S" x: k+ P7 b
{mid=(i+j)/2;
; T& q# g& K8 a4 Qif(k==array[mid]) return(mid);/ @9 m* }% y9 I, K8 F1 a. X) G* h. @
else if(k : S  L) y/ S" F, p1 i1 f
else i=mid+1;. l: O% G; w, x! A' v
}& b* R4 W+ U6 Y! A" o' Z1 m$ v
return(0);
" g: C7 Q- x& g1 ?}* [9 N3 k$ Z. @$ r& G: A
/*冒泡排序法*/
3 E* V; d$ n: Q" D1 N( I% A5 Xvoid mpsort(int array[])
1 j" m1 J. c4 {% }! r8 i- P# X{int i,j,a;
" E9 Y1 H2 T8 ^& N# ?* ?8 ka=0;
  `$ x; s9 J# s7 e, Hfor(i=1;i ' U# X3 U6 F# m) G  o1 g
for(j=i+1;j 2 C4 h4 F4 Z/ J: b0 [
if(array[i]>array[j])' h5 P  U! {" f' @8 l8 z- ^
{a=array[i];
4 ?7 q! T3 S6 [: carray[i]=array[j];
* o7 Y& M8 X$ ]' Darray[j]=a;}# p+ k# B9 d: U1 E* w1 J# Y
}
) H1 v2 |& p: B6 g/*直接插入排序*/$ g2 X8 c: X, \1 B/ @
void insertsort(int array[])7 c9 G) m2 L7 w3 L( o  ?) n- E
{int i,j;3 H4 g4 c* ^' [
for(i=2;i
% D/ a5 x& J( ~' C+ k{array[0]=array[i];
, f, i! f  N  vj=i-1;
$ n. H3 h  }( x$ P/ Zwhile(array[0] 0 @2 \$ T0 \6 N# H
{array[j+1]=array[j--];
) T" K5 V& M: j: ?: l/ W# warray[j+1]=array[0];
: V7 n: P9 v7 i. b  z}
' {, e) w/ [+ D2 S0 y}% T# r& f# V) X0 d- R( `
}
0 M- z9 R, Q6 g1 k* P/*建立*/
0 k$ k% ?1 S! I; T3 R8 [void creat(int array[])& P9 a( f9 Q5 \7 W
{int i;1 k# j  \7 ~8 H( _
printf("enter the array:\n");% f# e8 x5 p' D% u$ E( ^- {9 H
for(i=1;i   V# |/ f# Z& I: l) p6 b
scanf("%d",&array[i]);
) b0 c7 W0 T* L6 S6 ~}) k# w1 w: d$ K! @/ U& v
/*显示*/
; t( ]( A* J  e4 w/ f% O! J# Kvoid print(int array[])
0 l' G; W  y' h- L/ x8 y{int i;: j; K# A/ L) I' t5 _
printf("The numbers after sort is:\n");' ^3 }( X& K0 S  x; X$ @
for(i=1;i $ f! f: u+ _( y- u" m8 A
printf("%d ",array[i]);
. Y3 J0 _! {8 Z; w+ Gprintf("\n");" U; G, f/ x; j' c2 `) U
}
- M7 `8 i" A1 ]main()
! `! O* m7 L* M, M{int a[11],i,x,chang;
4 |' o; {: F% d. P2 }" `" L; Q% E, R/*printf("enter the array\n");4 n3 S8 m& ~$ ~$ O& {# h8 _5 L
for(i=1;i<11;i++). }1 d  b3 m; Z1 L6 a# @
scanf("%d",&a[i]);*/3 I& @2 H; v1 F% `3 w9 D
aga:7 M( T' J. s# N$ u4 O- Z
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");
2 D8 L) _; i% o+ u  c: Hscanf("%d",&chang);
3 j2 o7 ]+ L1 Y! s. T9 c, C1 |2 `switch (chang)( J2 a- V  F& I- S. [- {6 M2 M5 l1 e
{case 1:: }: ^/ v2 Q) e, h! W  V/ f
{creat(a);
0 n: ~! `: W; h- j5 `printf("Please int the search number:\n");; Y, n' u7 V2 f, c; |% c5 }. V9 h
scanf("%d",&x);
7 s! B2 c/ U3 I/ @2 y) \printf("The number station is:%d\n",search(a,N,x));
, o9 g) o/ O: R3 l" t/ @goto aga;& i" T; E$ @* _2 @" i- H
}  A: P; f  V; `
case 2:
2 ?7 Y, A; r& M1 A{ creat(a);
5 J5 o, x& u* r. j5 Einsertsort(a);
4 Q. b! r/ g- N* |7 v' Uprint(a);
8 {, S; P" x' H. |printf("Please int the search number:\n");( B: u, h$ O! f
scanf("%d",&x);; A& X6 O4 Y) X! u. O
printf("The number station is:%d\n",halfsearch(a,N,x));! |! C0 W. l' d0 |  n" d
goto aga;
. m2 Y- o- |0 i4 D$ C4 \}7 o2 o1 b/ D" N! c3 F) p
case 3:( P$ a2 I# u8 V& N
{creat(a);
1 i3 V* n4 m' J* D9 q6 Minsertsort(a);/ k% z& O. ]7 \2 d; p
print(a);6 m0 p2 S4 {: ]$ P
goto aga;
0 `% Y* \) {) ~$ p: u5 M}
8 a5 y. {- z$ o- j6 S4 I; Kcase 4:# j8 y1 S' p, U4 o
{creat(a);1 I* J. g* R1 o
mpsort(a);3 @( b0 |# M4 q' h: h  N% ~, f
print(a);2 ~  j- ~0 ?0 X% A- O" _
goto aga;
/ V% q0 Q' i0 _8 A1 n0 D# x0 [}
4 i1 g7 T4 [7 j; }case 5:{ printf("exit!\n");break;}
, f/ \2 y5 G8 f5 r- f0 `% ]/ ^default:{printf("Error!\n"); goto aga;}
8 [+ |- j7 u( [6 a- G1 R}
! e( d6 R' x. ~% N: Q}8 Y. V8 i6 R/ a! ?
! u3 {* L/ W3 @( X0 v

作者: gl1990119    时间: 2010-6-1 22:21
厉害!!!!!!!!!!!
作者: xushu    时间: 2010-10-23 00:05
数据结构学得不错!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5