数学建模社区-数学中国
标题:
排序与查找方法
[打印本页]
作者:
厚积薄发
时间:
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; f
int search(int array[],int n,int k)
! b+ w& u8 b5 p1 ]1 @: R
{int i;
) T( J. U% T' J' u; t
i=n-1;
6 N* g8 w3 o8 e: }! s2 \6 U n, u8 i
array[0]=k;
' Z R- \5 @! H7 ?. J( g
while(array[i]!=k) i--;
5 Z1 F( z5 j1 [ N
return(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 {% Y
if(array[i]>array[j])
& \" T# O* n: w6 R& s
{a=array[i];
7 ~+ \4 x- J: }. A
array[i]=array[j];
: G3 n& ?6 y1 _) k& C" v k& z
array[j]=a;}
# u- `7 a, v @# q6 m! B
}
( o8 w( \; s3 @: K& z) i3 W0 r
/*直接插入排序*/
8 [ o$ u6 U7 _; W0 H
void insertsort(int array[])
{0 p( W, t$ ?- J/ I
{int i,j;
% y, J: ^! v ~2 b7 e% F
for(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 j
while(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! m
void 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& ~ W
scanf("%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 k
void 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 k
main()
! 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% l
scanf("%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: U
printf("Please int the search number:\n");
+ ` n3 ]! N% X6 k
scanf("%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( o
case 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- m
goto 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 C
goto 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! I
default:{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