参考《大话数据结构》,博主自己敲了遍排序算法,希望对面试者、学习者有些参考作用。
#include <vector> #include <iostream> using namespace std; void CoutBuf(int *buf,int m) { for (int i = 0; i < m-1; i++) { cout << buf[i] << ","; } cout << buf[m - 1] << endl; } void BubbleSort(int *buf, int m) { int flag = 1; for (int i = 0; i < m-1 && flag ; i++) { flag = 0; for (int j = m - 2; j >= i; j--) { if (buf[j]>buf[j + 1]) { swap(buf[j], buf[j + 1]); flag = 1; } } } } void swap(int &buf, int &buf1) { int temp = buf; buf = buf1; buf1 = temp; } void SelectSort(int *buf, int m) { for (int i = 0; i < m; i++) { int min = i; for (int j = i + 1; j < m; j++) { if (buf[j] < buf[min]) min = j; } if (min != i) { swap( buf[min], buf[i]); } } } void InsertSort(int *buf, int m) { int i, j ,temp; for ( i = 1; i < m; i++) { if (buf[i] < buf[i - 1]) { temp = buf[i]; for (j = i; buf[j-1]>temp && j>0; j--) buf[j] = buf[j-1]; buf[j] = temp; } } } int main() { int buf[] = { 100,12, 3, 6, 9, 2, 6 }; int m = sizeof(buf) / sizeof(int); cout << "sort before:"; CoutBuf(buf, m); cout << "sort after:"<<" "; //BubbleSort(buf,m); //SelectSort(buf,m); InsertSort(buf, m); CoutBuf(buf, m); system("pause"); return 0; }