排序算法之選擇排序

#include <iostream>

using namespace std;

//選擇排序

/**
一句箴言:選擇待排序數據分爲"已排序區"和 "待排序區"。 找出待排序區最小的元素並放到已排序區末尾

方法:查找到最小元素的索引位置,而後和未排序區第一個元素交換位置便可

**/

void selectSort(int arr[], int n) {
	for (int i = 0; i < n; i++) {
		//默認每次待排序中第一個最小
		int minIndex = i;
		//循環遍歷待排序區全部元素,找到最小值對應的索引
		for(int j = i+1; j < n; j++) {
			if (arr[j] < arr[minIndex]) {
				minIndex = j;
			}
		}
		//最小值和待排序中第一個值互換
		swap(arr[i], arr[minIndex]);
	}
}


int main() {

	int arr[10] = {10,9,8,7,13,5,4,3,2,1};

	selectSort(arr, 10);

	for(int i =0; i< 10; i++) {
		cout << arr[i] << "  ";
	}

	return 0;
}
相關文章
相關標籤/搜索