选择排序
简单选择
#include <iostream> #include <vector> using namespace std; void swap(int &p, int &q); void selectSort(vector<int> &array, int n); int main() { int n; cin >> n; vector<int> array; array.resize(n); for (int i = 0; i < n; ++i) { cin >> array[i]; } selectSort(array, n); for (int i = 0; i < n; ++i) { cout << array[i] << " "; } return 0; } // 快速选择排序 void selectSort(vector<int> &array, int n) { for (int i = 0; i < n; ++i) { int index = i; int minVal = array[i]; int minIndex = i; for (int j = i + 1; j < n; ++j) //找到从i 到 n 最小值的下标 { if (array[j] < minVal) { minVal = array[j]; minIndex = j; } } swap(array[i], array[minIndex]); // 将i位置 与 最小为值minIndex 交换 } return ; } // 进行数据交换 void swap(int &p, int &q) { int tempVal = p; p = q; q = tempVal; return ; }