面试常用算法,
冒泡很可能要考的
#include "stdafx.h" #include <stdio.h> #include "string" void fun_swap(int &a, int &b); bool fun_array(int *p, int i32Size); int Binary_Search(int *a, int n, int key); int _tmain(int argc, _TCHAR* argv[]) { //冒泡排序 int a[5] = {3,2,1,5,4}; fun_array(a, 5); int b[11] = {0,1,2,3,4,5,6,7,8,9,10}; int aa = Binary_Search(b,11,8); //二分查找法 return 0; } //冒泡排序 bool fun_array(int *p, int i32Size) { for (int i=0; i<i32Size; i++) { for (int j=i+1; j<i32Size; j++) { if (*(p+i)>*(p+j)) { fun_swap(*(p+i), *(p+j)); } } } return true; } //交换 void fun_swap(int &a, int &b) { int c; c = a; a = b; b = c; } //二分查找 int Binary_Search(int *a, int n, int key) { int low, high, mid; low = 1; //定义最低下表为记录首位 high = n; //定义最高下标为记录末位 while (low<=high) { mid = (low+high)/2; //折半 if (key<a[mid]) //若查找值比中值小 { high = mid -1; //最高下标调整到中位下标小移位 } else if(key>a[mid]) //若查找值比中值大 { low = mid + 1; //最低下标调整到中位下标大一位 } else { return mid; } } return 0; }先记录一下