数学建模社区-数学中国
标题:
排序与查找方法
[打印本页]
作者:
厚积薄发
时间:
2010-5-31 17:42
标题:
排序与查找方法
#include
: j$ Q% j5 O- d/ A
#include
0 n$ D& f: d1 a, [+ [9 n
#define N 11
/ G' Q4 f: b' C- ]8 O2 V- T
/*用**哨查找*/
- @6 K b7 W3 @' `' v7 U
int search(int array[],int n,int k)
' |2 S1 f0 @* o; y5 x- h
{int i;
& `/ n/ |$ `% H, m \7 V$ E
i=n-1;
: y! `: j% h# W \0 U6 w1 v/ d
array[0]=k;
/ a# t; A- m! P* A, g
while(array[i]!=k) i--;
% w( U8 G8 c3 G' k
return(i);
" N6 G$ i5 K0 ]
}
9 r L8 W* l: e0 _* v; {+ E; |( r3 h, O
/*折半查找法*/
8 |; T6 r# }" U7 {5 M0 ^) h9 ~
int halfsearch(int array[],int n,int k)
: ^* X& U8 H/ g/ l2 l; i l$ _ K2 z
{int i,j,mid;
9 U; a8 T0 O2 `. J0 r
i=1;j=n;
7 [5 d F0 i7 c
while(i<=j)
% z. n* g3 ], m2 g# E' ~
{mid=(i+j)/2;
+ y( S: c# w+ z# C) N# }5 o; T
if(k==array[mid]) return(mid);
% @7 K: }) U! t# a" B
else if(k
( t9 g+ t* V3 x9 f: l6 }+ c2 p
else i=mid+1;
6 k& W" c/ p7 i8 ?( g, c& |( _
}
' c9 Y# q( u# i* V7 Q
return(0);
) v0 }* U3 L6 R
}
2 I& v/ z; h$ |3 W! l
/*冒泡排序法*/
4 d) j8 k# |$ r J$ S! H
void mpsort(int array[])
1 x1 m5 s7 x: v
{int i,j,a;
# s$ P6 a3 p% m6 c+ V: w
a=0;
; o, y3 `1 M+ I. Q5 } a2 w$ ?
for(i=1;i
+ c" t* N Y6 w8 t$ F! t
for(j=i+1;j
6 u% \& T* L9 `5 \; m8 H
if(array[i]>array[j])
) T0 z) H; _% c
{a=array[i];
4 P6 S( O* K0 `: p$ W: K" U I
array[i]=array[j];
7 M7 D; G" `6 s
array[j]=a;}
# U9 E& g+ ?3 p+ k% V( D
}
6 h3 p! N: J& _0 a1 N
/*直接插入排序*/
" S; }8 V0 m8 W$ A1 I* e& o) V
void insertsort(int array[])
' T3 J! a' @: v7 A2 H' w l' n) X
{int i,j;
! t: C7 K) o( S3 `' {( f
for(i=2;i
+ i* y; ~4 _; J
{array[0]=array[i];
( f t: ]$ L: k* C& f2 M7 I
j=i-1;
8 O [8 ^' y8 Y% h- M& t
while(array[0]
7 a% W8 B% |' I5 H1 R) o
{array[j+1]=array[j--];
; o# v% B4 f8 A8 b9 G' x# U
array[j+1]=array[0];
* K1 ?3 M- j a3 G
}
, a7 M k+ r( x$ S2 M' I/ \# T
}
! h6 _3 s* z0 j. `0 @
}
( p' k. N5 [( m3 i
/*建立*/
3 @* S+ a8 I* i ]# G7 T y
void creat(int array[])
% |& i8 L* Y( o9 j
{int i;
( f) g' Q: n2 V
printf("enter the array:\n");
' w: p5 o+ a* c% U
for(i=1;i
. t( t- L6 Y7 ?) s
scanf("%d",&array[i]);
. o; c5 K6 q2 L4 c
}
* O( r! W( J5 S7 J7 S
/*显示*/
8 e6 j0 n. }. M
void print(int array[])
4 F9 q+ @8 n j+ c
{int i;
% @- X5 _; R+ K5 _6 r
printf("The numbers after sort is:\n");
& T: g; y! J7 f8 e5 z$ G: [4 ?
for(i=1;i
( u- s& _' C$ s5 J9 P3 X
printf("%d ",array[i]);
, J6 `) E; a* z& g& ?
printf("\n");
1 U% Y0 C' v/ g3 Q2 a, P# S G
}
8 ]' K8 b5 p* N
main()
; x2 b+ m9 g' U& E
{int a[11],i,x,chang;
" j ]3 z3 P2 @4 _
/*printf("enter the array\n");
9 B( s- |: p% Q7 i
for(i=1;i<11;i++)
3 a0 S( w @9 V' n! _. n0 A
scanf("%d",&a[i]);*/
$ T4 h) ]2 o5 V8 n0 F! k) c' {
aga:
Q0 |9 Y2 ?0 z7 {& k' d* x& O
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");
|& S U+ z5 `# x2 Y
scanf("%d",&chang);
$ T3 T6 O3 P; |, j
switch (chang)
# U3 r8 d. a S- p
{case 1:
8 Q" r2 n, `9 l& Q
{creat(a);
0 N8 ` ]2 O; _. ]- I& F$ d
printf("Please int the search number:\n");
! L+ A7 b2 O, O8 v
scanf("%d",&x);
( i. n7 B0 x9 s0 n: `4 y
printf("The number station is:%d\n",search(a,N,x));
! ?8 j+ [- O6 W1 q
goto aga;
3 ^9 m. b4 K0 D
}
2 _0 _' j$ V$ Z3 Q# m
case 2:
1 S$ K/ `! |; l4 G$ G- S8 C* U
{ creat(a);
! _& L0 w. m1 Y
insertsort(a);
' S2 P* Z% d! T" d5 H2 N6 I
print(a);
6 B1 U, D2 H- s& q# a: L. {% n% o
printf("Please int the search number:\n");
9 T! D; ?! n0 c) F
scanf("%d",&x);
- a6 g1 e3 x2 j4 e! d# [
printf("The number station is:%d\n",halfsearch(a,N,x));
, Y: L; ?( U9 I8 a8 ~4 u9 Z
goto aga;
; _- a$ H y1 ?, }# B3 R
}
8 ?7 L* B; A7 n2 {) r7 `
case 3:
! T" s9 |% D- s
{creat(a);
1 S7 a2 y5 p5 M/ Q$ O
insertsort(a);
9 @1 y8 j: I$ }9 h3 p5 E$ P- e
print(a);
4 X( G5 _1 G; t5 U, E
goto aga;
1 _ g" [$ @. z& ^9 \5 J z$ x
}
. c7 v. j7 H5 _+ q% z. x
case 4:
) t) Y! j$ J1 k; D8 t/ E/ n
{creat(a);
% `, @0 K r8 N; k
mpsort(a);
+ e: K, a! o8 m
print(a);
7 b+ I) q3 d3 P3 n. A/ m9 G
goto aga;
( F9 T2 A/ ~$ d* M
}
& {, n1 a; y$ Y! a
case 5:{ printf("exit!\n");break;}
) ]8 E0 H# o K2 L. L
default:{printf("Error!\n"); goto aga;}
; V8 o1 I0 [* K# g
}
; x* z2 d% O" `9 o
}
( X6 C% W. ]6 D, k0 Z1 A$ Z
, R5 ^: `( d5 y' K6 N4 ~
作者:
gl1990119
时间:
2010-6-1 22:21
厉害!!!!!!!!!!!
作者:
xushu
时间:
2010-10-23 00:05
数据结构学得不错!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5