排序算法之插入排序

#include <iostream>

using namespace std;

//插入排序

/**
一句箴言:將選擇待排序數據分爲"已排序區"和 "待排序區"。 依次將待排序區元素與已排序區數據對比,尋找合適的插入位置

方法:從已排序元素倒着對比,若待排序元素小於當前比較元素,則互換位置。 若待排序元素大於當前比較元素,則說明已經該元素就該在此位置
**/
void insertSort(int arr[], int n) {

	//該循環爲待排序區元素,從1開始是由於默認將第一個元素做爲了已排序區元素
	for (int i = 1; i < n; i++) {

		//此循環是爲了和已排序區元素倒着對比,並兩兩互換
		for (int j = i; j >= 0; j--) {
			if (arr[j] < arr[j-1]) {
				swap(arr[j], arr[j-1]);
			} else {
				break;
			}
		}

	}
}


int main() {

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

	insertSort(arr, 10);

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

	return 0;


}
相關文章
相關標籤/搜索