- 在线时间
- 0 小时
- 最后登录
- 2004-7-22
- 注册时间
- 2004-5-28
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 124 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 43
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 4
- 主题
- 7
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   40% 该用户从未签到
 |
< >) ?3 V" I+ Y4 h9 H% X( K
#include <malloc.h>5 ?7 ?- i' s2 p: e. V- o, L, e
#include<stdio.h>
% a( R' R3 L0 F#define N 11
% b3 G( a# G2 W1 N/*用监视哨查找*/2 I v& }' u( X0 e
int search(int array[],int n,int k)7 O) X9 \' k7 y" ~: ^9 w
{int i;# A3 ]: D, P% c
i=n-1;) X4 \% I3 O2 h9 z t. K0 s! t0 {1 v
array[0]=k;
5 a" N" y' f: r( a9 vwhile(array!=k) i--;
- u1 G+ A! J3 m3 ureturn(i);. y1 C4 J0 L" c
}* d4 ~+ U* S5 G: x. j8 s
/*折半查找法*/
! r' W/ s- f' A- A5 @' z; j3 vint halfsearch(int array[],int n,int k)
+ J' Z6 \- K# f1 N{int i,j,mid;
* Y5 ^; `. A( M9 [ i=1;j=n;5 e- F1 F2 H7 g8 T7 l* t% X9 M
while(i<=j). l, ?6 b6 @9 M# ]) q* C% V0 G$ Y
{mid=(i+j)/2;
4 Z' h7 P7 C V1 E+ K# v if(k==array[mid]) return(mid);* F4 U$ B# H& |- H& p
else if(k<array[mid]) j=mid-1;
. \2 b; T, |, g( W, w6 e else i=mid+1;
; i6 ?+ Q3 `/ P5 P1 G}/ h" M" E& a' }2 n& |+ S$ ~
return(0);
( i- T9 M/ f7 C7 V G4 q) B+ M1 r}</P>
/ [4 t) L0 j- K) t+ b2 q. T< >/*冒泡排序法*/
4 ~4 c4 W( e% S1 _0 {void mpsort(int array[])4 U9 ~, E1 J6 E, j: b
{int i,j,a;
& }# E: N# d+ t/ e" ~7 Ia=0;( c$ ] @- J: z9 E
for(i=1;i<N;i++)
R7 ?4 S. {7 S" O for(j=i+1;j<N;j++)
2 j. m+ u( P5 }* g if(array>array[j])
: v5 z3 p7 H0 B' S9 K {a=array;- n. k, X' e" J2 L7 K; V8 e2 a' {
array=array[j];6 Y+ @1 k6 d+ ?8 ~4 @2 V. |
array[j]=a;}! s- e, H% ^% X; ~5 c$ e; p+ B- F
}
7 M" F2 Y. A% f6 k% i7 Z/*直接插入排序*/( W* ^# }# n2 b$ G! B3 v
void insertsort(int array[])
" ^. A9 w4 N1 t4 B H{int i,j;
' f! |# x7 r9 x- N4 ^, ? for(i=2;i<N;i++)3 E8 Z) Y* M) o) t& S
{array[0]=array;
) x J: k" K( w' z' q) tj=i-1;& [) U& O- h* Z, f J
while(array[0]<array[j])
1 F* F: n/ `1 t( Z4 \4 F {array[j+1]=array[j--];
( H: o0 w- Q' ?$ A2 | array[j+1]=array[0];
9 A6 K4 V/ a: m3 \5 _3 z}9 x' R+ P# W0 J! U5 \
}6 e5 P6 }4 E2 V9 y3 `6 h k
}
* ]$ [: P7 ?0 L1 x/*建立*/
2 ~2 o# j* G: o3 o- _5 c# f9 \void creat(int array[])8 W0 l: C7 p9 ^0 p' [' e; P5 _
{int i;
: n8 a6 K. w# r3 l, f8 L printf("enter the array:\n");, N, C8 D& H9 _4 b2 w
for(i=1;i<N;i++)
' q0 S) ?" p. N5 } scanf("%d",&array);1 r# e$ g! V8 U0 d8 o# B2 i
}</P>
" |+ H4 p" J6 Z+ v( Q* p< >/*显示*/0 Y: Q' |# v, T6 w( ]% ]( X
void print(int array[])0 |2 w! ^6 [: g/ \: H0 q2 T% F' K
{int i;
9 m- d6 P' d" P1 l- |) ~ printf("The numbers after sort is:\n");
2 v _3 o. W4 k for(i=1;i<N;i++)
9 n' @, ?9 t) ]. B3 _0 u6 ~ printf("%d ",array);
& K' p' t5 j% R printf("\n");
- a4 O0 m* H7 H M }</P>$ L+ w& R) Z- i1 x7 J3 K4 a
< >" o$ o8 e. Y1 O* S2 X" X/ V4 L
main()
1 v E3 ~+ t9 d0 l$ b9 d{int a[11],i,x,chang;
; r- O+ Z# A+ g% O; M /*printf("enter the array\n");% v% N5 c0 u E" {9 O; U3 t
for(i=1;i<11;i++)
- J- U1 H& R# o scanf("%d",&a);*/</P>
% H s; A1 W( V- m< >aga:
& n" k; B7 V6 D4 {. Y 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");
' \7 v- \" u/ F- i; l scanf("%d",&chang);
7 B$ F% W7 R7 l ~2 k! a. l switch (chang)
$ m3 h; `( O" A2 Y; e- K {case 1:: J+ s0 a8 ]$ R
{creat(a);( S, P) _1 k' A0 C# A
printf(" lease enter the search number:\n");9 r( Z, r1 G" v. `
scanf("%d",&x);
2 ^% v. N3 u2 n9 e. o" o printf("The number station is:%d\n",search(a,N,x));
2 X/ r& I2 e$ t1 L: a/ r- f5 { goto aga;- _- x4 \9 D: c1 _3 O
}
( I+ X- C0 J9 T; q9 W- f case 2:
6 ]" E# U, q. J" Q { creat(a);
1 a% r& N* l( F* b0 v insertsort(a);$ K' q- ]' k+ f6 u# ~8 i+ N
print(a);
- z" s n9 B; y8 @" Q8 r printf(" lease int the search number:\n");
9 P# j8 ~% S9 S# r" B; o scanf("%d",&x);+ e- t. s7 l' K2 W4 F0 }
printf("The number station is:%d\n",halfsearch(a,N,x));
# K- x4 P# A: z& [2 `9 _) F1 `4 K# X goto aga;$ }1 {( V/ L7 H, f5 x9 d
}. x( i5 K" p4 N% H T7 s
case 3:; W+ l5 g4 o5 M+ t! I
{creat(a);
0 [& V b2 V0 V insertsort(a);
: ~& j, Z) ]) G, L/ e( c print(a);
% F! k6 y! o, {8 I goto aga;% ]( o9 C+ _. j% O! e
}</P>
3 j& b* t2 j+ h8 v% e7 `, l< > case 4:
- w+ n4 B5 Z# x3 t! ]0 u: P8 [ {creat(a);
/ k! d6 E2 v$ M) u' Q mpsort(a);
5 ~1 R6 X9 b' Y* `) @ print(a);) N4 s n* y) W! G
goto aga;
' a% a$ z; d" s& [- c" g }</P>8 s1 j3 _/ H2 g
< > case 5:{ printf("exit!\n");break;}, p0 y' Z( Z# T/ n( c5 u& U
default:{printf("Error!\n"); goto aga;}; @5 }( j- k# I2 E, p
}
. M6 {1 t# E8 q' M1 L; b8 }}5 d: S. U$ u% }
4 T$ g# G, l' `7 u
' o3 Z; B) v$ a# j</P>
% H0 t' E0 J: T3 x- D[此贴子已经被作者于2004-6-3 12:16:43编辑过] |
zan
|