c简单查找
顺序查找
1 #include "stdio.h" 2 #define N 5 3 int main(int argc,char *argv[]) 4 { 5 int i, k, a[N]; 6 for (i = 0; i < N; i++) 7 { 8 scanf("%d", &a[i]); //循环输入 9 } 10 11 printf("\n请输入要查找的数:"); 12 scanf("%d", &k); 13 14 for (i = 0; i < N; i++) 15 { 16 if (a[i] == k) //循环查找 17 { 18 printf("%d在第%d位", k, i + 1); break; 19 } 20 } 21 return 0; 22 }
二分查找
1 #include"stdio.h" 2 int main() 3 { 4 int a[5],min,max,p,t,i,j,mid,k; 5 for(i=0;i<5;i++) 6 scanf("%d",&a[i]); 7 for(i=0;i<4;i++) 8 { 9 min=a[i]; 10 p=i; 11 for(j=i+1;j<5;j++) 12 if(min>a[j]) 13 min=a[j],p=j; 14 a[p]=a[i]; 15 a[i]=min; 16 } 17 for(i=0;i<5;i++) 18 printf("%d ",a[i]); 19 printf("\n"); 20 min=0; 21 max=4; 22 printf("请输入要查找的数:"); 23 scanf("%d",&k); 24 while(k>=a[min]&&k<=a[max]) 25 { 26 mid=(max+min)/2; 27 if(k==a[mid]) 28 { 29 printf("%d在第%d位",k,mid+1); 30 break; 31 } 32 else if(k<a[mid]) 33 max=mid-1; 34 else 35 min=mid+1; 36 } 37 return 0; 38 }
冒泡查找
1 #include"stdio.h" 2 int main() 3 { 4 int a[5], i, j, t, k; 5 for (i = 0; i < 5; i++) 6 scanf("%d", &a[i]); 7 for (i = 0; i < 4; i++) 8 for (j = 0; j < 4 - i; j++) 9 if (a[j] > a[j + 1]) 10 { 11 t = a[j]; 12 a[j] = a[j + 1]; 13 a[j + 1] = t; 14 } 15 for (i = 0; i < 5; i++) 16 { 17 printf("%d ", a[i]); 18 } 19 20 printf("\n请输入要查找的数:"); 21 scanf("%d", &k); 22 for (i = 0; i < 5; i++) 23 if (k == a[i]) 24 printf("%d在第%d位", k, i + 1); 25 return 0;

浙公网安备 33010602011771号