1、冒泡算法 #include <stdio.h> int main(int argc, char **argv) { int a[]={2,4,1,5,9,12,88,99,56}; int tmp = 0; for (int i=0;i<9;i++) printf("a[%d]=%d/n", i, a[i]); for (int k=0;k<9;k++) { for(int j=0;j<9;j++) { if (a[j]>a[j+1]) { tmp=a[j]; a[j]=a[j+1]; a[j+1] = tmp; } } } for (int i=0;i<9;i++) printf("a[%d]=%d/n", i, a[i]); return 0; } 2、线性查找 [root@Linux cpp]# vi 6.cpp #include <stdio.h> int linearSearch(const int[],int,int); int main(int argc, char **argv) { int array[]={1,2,3,4,6,9,12,88,99,8}; int num = 0; num = linearSearch(array, 88, 10 ); if (num != -1 ) printf("find in %d/n", num); else printf("fine err/n"); return 0; } int linearSearch(const int array[], int key, int sizeofArray) { for (int i=0; i<sizeofArray; i++) if (array[i] == key ) return i; return -1; } 3、折半查找 #include <stdio.h> int binarySearch(const int[],int,int,int,int); int main(int argc, char **argv) { int array[]={1,2,3,4,6,9,12,88,99,8}; int num = 0; num = binarySearch(array, 88, 0, 10, 10 ); if (num != -1 ) printf("find in %d/n", num); else printf("fine err/n"); return 0; } int binarySearch(const int array[], int key, int low, int high,int sizeofArray) { int middle = 0; while ( low <= high ) { middle = (low+high) / 2; if (key == array[middle] ) return middle; else if (key < array[middle] ) high = middle - 1; else low = middle + 1; } return -1; }