#include <malloc.h> #include<stdio.h> #define N 11 /*用监视哨查找*/ int search(int array[],int n,int k) {int i; i=n-1; array[0]=k; while(array[i]!=k) i--; return(i); } /*折半查找法*/ int halfsearch(int array[],int n,int k) {int i,j,mid; i=1;j=n; while(i<=j) {mid=(i+j)/2; if(k==array[mid]) return(mid); else if(k<array[mid]) j=mid-1; else i=mid+1; } return(0); }
/*冒泡排序法*/ void mpsort(int array[]) {int i,j,a; a=0; for(i=1;i<N;i++) for(j=i+1;j<N;j++) if(array[i]>array[j]) {a=array[i]; array[i]=array[j]; array[j]=a;} } /*直接插入排序*/ void insertsort(int array[]) {int i,j; for(i=2;i<N;i++) {array[0]=array[i]; j=i-1; while(array[0]<array[j]) {array[j+1]=array[j--]; array[j+1]=array[0]; } } } /*建立*/ void creat(int array[]) {int i; printf("enter the array:\n"); for(i=1;i<N;i++) scanf("%d",&array[i]); }
/*显示*/ void print(int array[]) {int i; printf("The numbers after sort is:\n"); for(i=1;i<N;i++) printf("%d ",array[i]); printf("\n"); }
main() {int a[11],i,x,chang; /*printf("enter the array\n"); for(i=1;i<11;i++) scanf("%d",&a[i]);*/
aga: 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"); scanf("%d",&chang); switch (chang) {case 1: {creat(a); printf("Please int the search number:\n"); scanf("%d",&x); printf("The number station is:%d\n",search(a,N,x)); goto aga; } case 2: { creat(a); insertsort(a); print(a); printf("Please int the search number:\n"); scanf("%d",&x); printf("The number station is:%d\n",halfsearch(a,N,x)); goto aga; } case 3: {creat(a); insertsort(a); print(a); goto aga; }
case 4: {creat(a); mpsort(a); print(a); goto aga; }
case 5:{ printf("exit!\n");break;} default:{printf("Error!\n"); goto aga;} } }
|