C++排序系列(二) 交换排序之简单排序
郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖!
可以任意转载、修改,转载时是否标明出处,随君而定!
交换排序应该是交换排序里面最简单,也最容易理解的一个排序算法,比较接近人的习惯思维。扫描整个数据,从第0个元素开始,跟以后的元素逐个比较,按照排序规则(从小到大或者从大到小)交换顺序,比较完第a后再去比较第a+1个元素,以此类推。
1 template <typename T> 2 void swap(T& lhs, T& rhs) 3 { 4 T tmp = lhs; 5 lhs = rhs; 6 rhs = T; 7 } 8 9 template <template T> 10 void simple_exchange_sort(T v[], const int sz) 11 { 12 for (int i=0; i < sz-1; ++i) 13 { 14 for (int j=i+1; j < sz; ++j) 15 { 16 if (v[i] > v[j]) 17 { 18 swap<T>(v[i], v[j]); 19 } 20 } 21 } 22 }