C++实现——排序算法总结
/* 常见的排序算法有:直接插入 希尔 冒泡 快速 选择 堆排序 归并 基数 */ //下面一一分析,并实现: /* 1.冒泡排序 冒泡排序是最简单的排序算法,冒泡排序的基本思想是从后往前(或从前往后)两两比较相邻元素的值,若为逆序,则交换它们,直到序列比较完毕。我 们称它为一趟冒泡。每一趟冒泡都会将一个元素放置到最终的位置上。 */ //从前往后遍历,保证排好序的放到右侧 void BubbleSort_from_0( vector < int > & nums){ int n = nums.size(); //一共进行n-1趟 for ( int i = 0 ; i < n - 1 ; i++){ //注意j的起点和终点 for ( int j = 1 ; j < n - i; j++){ if (nums[j] < nums[j - 1 ]){ swap(nums[j], nums[j - 1 ]); } } } } //从后往前遍历,保证排好序的放到左侧 void BubbleSort_from_n( vector < int > & nums){ int n = nums.size(); //一共进行n-1趟 for ( int i = 0 ; i < n - 1 ; i++){ //注意j的起点和终点 for ( int j = n- 1 ; j >i; j--){