选择排序:
概述:
(1) 将0到N-1位置上最小的数与0位置处的数交换;
(2) 将1到N-1 位置上最小的数与1位置处的数交换;
(3)以此类推,一直到N-1位置处结束,完成排序。
算法稳定性:
不稳定算法。
时间复杂度:
O(N2)
代码:
#include <iostream> using namespace std; template<typename T> void SelectionSort(T array[],int length) { if (length < 2) return; int i = 0, j = 0; for (i = 0; i < length; i++) { int min = i; //每次找到最小值所对应的下标 for (j = i+1; j < length; j++) { //如果其它元素比当前最小值小,那么将更小的元素下标赋值给min if (array[min] > array[j]) { min = j; } } //最小值下标对应为min,将最小值与i位置交换 int temp = array[i]; array[i] = array[min]; array[min] = temp; } } int main() { int array[10] = {3,1,4,8,-34,-32,43,1,2,-1}; SelectionSort(array, 10); for (int i = 0; i < 10; i++) { cout << array[i] << " " ; } return 0; }
原文地址:https://www.cnblogs.com/love-jelly-pig/p/8343529.html
时间: 2024-08-14 05:44:22