数学建模社区-数学中国
标题:
排序与查找方法
[打印本页]
作者:
厚积薄发
时间:
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) H
int 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/ t
while(i<=j)
# H7 f7 R3 S" x: k+ P7 b
{mid=(i+j)/2;
; T& q# g& K8 a4 Q
if(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 X
void mpsort(int array[])
1 j" m1 J. c4 {% }! r8 i- P# X
{int i,j,a;
" E9 Y1 H2 T8 ^& N# ?* ?8 k
a=0;
`$ x; s9 J# s7 e, H
for(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 [: c
array[i]=array[j];
* o7 Y& M8 X$ ]' D
array[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 v
j=i-1;
$ n. H3 h }( x$ P/ Z
while(array[0]
0 @2 \$ T0 \6 N# H
{array[j+1]=array[j--];
) T" K5 V& M: j: ?: l/ W# w
array[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# K
void 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+ G
printf("\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: H
scanf("%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 E
insertsort(a);
4 Q. b! r/ g- N* |7 v' U
print(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 M
insertsort(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; K
case 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