数学建模社区-数学中国

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

作者: 厚积薄发    时间: 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$ Ei=n-1;: y! `: j% h# W  \0 U6 w1 v/ d
array[0]=k;
/ a# t; A- m! P* A, gwhile(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 cwhile(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! Hvoid mpsort(int array[])
1 x1 m5 s7 x: v{int i,j,a;
# s$ P6 a3 p% m6 c+ V: wa=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 Hif(array[i]>array[j])) T0 z) H; _% c
{a=array[i];
4 P6 S( O* K0 `: p$ W: K" U  Iarray[i]=array[j];
7 M7 D; G" `6 sarray[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) Vvoid 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 Ij=i-1;
8 O  [8 ^' y8 Y% h- M& twhile(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 rprintf("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 Ascanf("%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 Yscanf("%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$ dprintf("Please int the search number:\n");
! L+ A7 b2 O, O8 vscanf("%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 qgoto 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 Iprint(a);
6 B1 U, D2 H- s& q# a: L. {% n% oprintf("Please int the search number:\n");
9 T! D; ?! n0 c) Fscanf("%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 Zgoto 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$ Oinsertsort(a);9 @1 y8 j: I$ }9 h3 p5 E$ P- e
print(a);
4 X( G5 _1 G; t5 U, Egoto 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; kmpsort(a);+ e: K, a! o8 m
print(a);
7 b+ I) q3 d3 P3 n. A/ m9 Ggoto aga;
( F9 T2 A/ ~$ d* M}
& {, n1 a; y$ Y! acase 5:{ printf("exit!\n");break;}
) ]8 E0 H# o  K2 L. Ldefault:{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