排序算法实现合集-经典内外排序算法实现 算法 第1张

针对排序算法,网上有比较好的讲解,参考自:程序员内功:八大排序算法;这里主要是学习过程中的重新记录,记录典型的排序算法实现模板;

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

排序算法稳定性讲解:https://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html  

排序的稳定性:首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。

冒泡排序:简单交换,从左端开始从大到小开始冒泡;每次冒泡后,最大值归位;

排序算法实现合集-经典内外排序算法实现 算法 第2张

排序算法实现合集-经典内外排序算法实现 算法 第3张
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector<int> inarray;
int main(){
    freopen("in.txt", "r", stdin); // 重定向到输入 
    int i = 0; 
    int tmp; 
    // 方法1
    while (cin >> tmp)
    {   
        inarray.push_back(tmp);
        // cout << inarray[i] << endl;
        i++;
    }
    int num =  i;
    cout << "输入数据:" << endl;
    for(i = 0; i < num; i++){
        cout << inarray[i] << " ";
    }
    cout << endl << endl;
    cout << "排序过程:" << endl;
    for(i=1; i < num; i++){
        for (int j = 0; j < num-i;j++){
            if(inarray[j] >= inarray[j+1]){
                int tmp = inarray[j];
                inarray[j] = inarray[j+1];
                inarray[j+1] = tmp;
            }
        }
        for(int k = 0; k < num; k++){
            cout << inarray[k] << " ";
        }
        cout << endl;
    }
    for(i = 0; i < num; i++){
        cout << inarray[i] << " ";
    }
    cout << endl;
    return 0;
}
冒泡排序实现模板 排序算法实现合集-经典内外排序算法实现 算法 第5张
输入数据:
9 8 7 6 5 4 3 2 1 0 

排序过程:
8 7 6 5 4 3 2 1 0 9 
7 6 5 4 3 2 1 0 8 9 
6 5 4 3 2 1 0 7 8 9 
5 4 3 2 1 0 6 7 8 9 
4 3 2 1 0 5 6 7 8 9 
3 2 1 0 4 5 6 7 8 9 
2 1 0 3 4 5 6 7 8 9 
1 0 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9
冒泡排序输出样例

快速排序:

 

保持更新,转载请注明出处;更多内容请关注cnblogs.com/xuyaowen;

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄