数学建模社区-数学中国

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

作者: 厚积薄发    时间: 2010-5-31 17:42
标题: 排序与查找方法
#include # r% [0 c. ^" J' `6 L
#include
' X) Y5 t7 b8 M' Z#define N 11
# @8 r, G( D8 z0 q( M8 z6 y& E/*用**哨查找*/
0 `% t% H+ l/ h$ S( w; fint search(int array[],int n,int k)! b+ w& u8 b5 p1 ]1 @: R
{int i;
) T( J. U% T' J' u; ti=n-1;
6 N* g8 w3 o8 e: }! s2 \6 U  n, u8 iarray[0]=k;' Z  R- \5 @! H7 ?. J( g
while(array[i]!=k) i--;
5 Z1 F( z5 j1 [  Nreturn(i);! f  x+ |" M! F6 U
}, q# \4 K2 i- }1 r) T+ q$ u( ?# n7 {  B
/*折半查找法*/. J+ `/ R" C# O! n
int halfsearch(int array[],int n,int k)- A" z$ p( V3 }. r: c7 ^# _" x8 v+ {
{int i,j,mid;* ]; e0 J8 V7 x8 P8 J
i=1;j=n;" h2 z6 E$ n' M' b: }
while(i<=j)
6 ]: F: z' c  c3 v8 @$ s# `{mid=(i+j)/2;3 n. H4 }# s2 F0 h* a2 r% b
if(k==array[mid]) return(mid);% H* }% v( T0 y' T: m2 ~9 R
else if(k ! R0 B5 k. J- I& r6 a
else i=mid+1;
  r1 X0 ~  c: h1 K! W2 \}% E% R* O' h. @8 N! a
return(0);
) H6 S3 I' _: Q! k}, Y( W) ]2 d& T3 x" P/ b
/*冒泡排序法*/. b5 u( n& N8 ]; V) E% `
void mpsort(int array[])
  A" ^+ ~7 P6 u% \{int i,j,a;, j: a1 k0 J1 `
a=0;4 x; `% q( i/ a- a$ T
for(i=1;i
$ V% m, g7 C5 C. F; b. _for(j=i+1;j
/ M# z" a9 d9 g0 @) f5 {% Yif(array[i]>array[j])
& \" T# O* n: w6 R& s{a=array[i];
7 ~+ \4 x- J: }. Aarray[i]=array[j];
: G3 n& ?6 y1 _) k& C" v  k& zarray[j]=a;}
# u- `7 a, v  @# q6 m! B}
( o8 w( \; s3 @: K& z) i3 W0 r/*直接插入排序*/
8 [  o$ u6 U7 _; W0 Hvoid insertsort(int array[])  {0 p( W, t$ ?- J/ I
{int i,j;
% y, J: ^! v  ~2 b7 e% Ffor(i=2;i
* K) n" m; Q: ^& M{array[0]=array[i];$ i- }0 a$ P& c" F! [1 W) t
j=i-1;
0 s& \) u2 Y* X: ?3 C0 jwhile(array[0]
& @0 g# X0 w8 g3 o. L9 J{array[j+1]=array[j--];8 W$ ^/ W# D9 Z) u0 S$ @" K$ s
array[j+1]=array[0];
+ f- j0 P5 @" D& {7 y! }}
( z, R& b7 q0 y. `9 i3 ?& f* }  r}( ^* [2 _# ]! e0 g/ t
}. I' Q+ N: D2 ?* V
/*建立*/
  t" U2 Z, U. d* z! mvoid creat(int array[])
; o& G) i% @9 p& d* `$ W{int i;  D! _, x) |' {& j% h, E2 Z
printf("enter the array:\n");
& u& {; \4 u( @for(i=1;i
# z7 ~5 o/ t: N& ~  Wscanf("%d",&array[i]);
% d: T) {9 U+ J1 J8 W+ t$ M* T}
1 F+ S2 r# u; U8 r2 c0 B, y3 G/*显示*/
, @1 |6 ?2 w" |% e9 kvoid print(int array[])
% G9 C, v' b; Z! w" z* f4 M{int i;- l; {  [6 @1 h' a
printf("The numbers after sort is:\n");. E- @# j! ?/ \; g
for(i=1;i ! y- G( D, R) D$ P; E/ e7 O7 {2 z
printf("%d ",array[i]);- a7 p  l% T% T" L2 X, V
printf("\n");
; j+ t# v- c4 E: ~& I3 X8 d}
2 U# s. c6 V+ a( c9 kmain()! y7 l! M; q( K' j" T" H
{int a[11],i,x,chang;
- Z5 t+ K: X$ O/ w/*printf("enter the array\n");  p0 r% |6 o& S
for(i=1;i<11;i++)# x5 D8 l1 y( J8 Z# [' Z9 ^
scanf("%d",&a[i]);*/! O# w+ q& p; g- X' @2 w, z4 W, v
aga:  H1 R9 ~% A" |& F7 N' m
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");
# P6 z/ I: }2 Y% lscanf("%d",&chang);2 {) ]8 @3 a6 _, l, v; u
switch (chang)3 ]! o  A) T) }
{case 1:% |2 M! k- w5 h4 V  _# D% A; l! s
{creat(a);
# q0 k! d6 p( c* |5 ^7 r: Uprintf("Please int the search number:\n");
+ `  n3 ]! N% X6 kscanf("%d",&x);/ P3 \5 x# k: k/ M! |' v
printf("The number station is:%d\n",search(a,N,x));3 Q3 R! U- I: L: a" b
goto aga;
* K/ u! }& U) n, W0 T- S}
& F: z$ n0 c: P6 f( ocase 2:
. I7 i/ r3 a' R{ creat(a);! j3 T7 `7 H2 Y4 h+ |
insertsort(a);+ o0 N8 I0 N- G5 n" Z: @( ]
print(a);" c' h7 y$ @7 C
printf("Please int the search number:\n");1 u2 h0 p! T5 k! S3 E/ _
scanf("%d",&x);
# D3 ~. S' @6 \printf("The number station is:%d\n",halfsearch(a,N,x));
* s# W( S) K. y( Q; Y* e' k- mgoto aga;; q6 c0 w) b" D7 t2 m
}7 L) r( L/ _  \; i
case 3:9 \& a- p5 e% w; ^' ~
{creat(a);6 O" I9 J2 I2 U3 t- Y& P
insertsort(a);" g" U, `. h$ H6 o! ?
print(a);
8 |! N! q5 x. Z) W  Cgoto aga;6 T0 f; U0 b+ R9 l7 t
}
- C  n" b6 w2 L$ A; a# F/ d) x  ?case 4:& X  B$ f9 I. U5 C( j6 J" V
{creat(a);9 q6 B: M( ?$ t
mpsort(a);# U6 `$ q  _0 E
print(a);! L" n" Y5 |  F$ N; M
goto aga;" A7 E* X; U) w; H# ^
}+ u3 T, N* ?, V' Q+ m. v3 B6 U
case 5:{ printf("exit!\n");break;}
- n4 U2 ^- @$ i# N: S! Idefault:{printf("Error!\n"); goto aga;}
/ |  e( X" q# F1 U7 m+ z3 z}7 q/ |# T) b* e$ j7 i" U, L: K
}6 Z. ?  ^! B* ?+ I* j

1 u! C$ l) _* {- C8 X* k% x
作者: gl1990119    时间: 2010-6-1 22:21
厉害!!!!!!!!!!!
作者: xushu    时间: 2010-10-23 00:05
数据结构学得不错!




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