#include <iostream>
#define MAX_SIZE 10
#define MAX_INDEX MAX_SIZE-1
typedef int T;
using namespace std;
void swap(T& a, T& b);
void select_sort(T* a, const int& len);
void printArr(const T* a, const int& len);
int main() {
int a[] = { 14, 8, -125, 0, 96, 99, 84, -125, 0, 1024 };
printArr(a, MAX_SIZE);
select_sort(a, MAX_SIZE);
printArr(a, MAX_SIZE);
return 0;
}
void printArr(const T* a, const int& len) {
for (int i = 0; i < len; i++) {
cout << a[i] << ' ';
}
cout << endl;
}
/*
* 交换两个数的值
*/
void swap(T& a, T& b) {
T tmp = a;
a = b;
b = tmp;
}
/*
* 选择排序算法
* 算法复杂度O(n*n)
*
*/
void select_sort(T* a, const int& len) {
// int minIndex = 0;
int minIndex, i, j;
int sLen = len - 1;
for (i = 0; i < sLen; i++) {
minIndex = i;
for (j = i + 1; j < len; j++) {
if (a[minIndex] > a[j]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(a[minIndex], a[i]);
}
}
}
【算法导论】选择排序
最新推荐文章于 2023-02-15 10:59:11 发布