排序算法大合集

2018-11-29  本文已影响8人  Allen的光影天地

基本概念

题目

给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。

本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:

代码合集

//
// Created by allenhsu on 2018/11/28.
//

#include <iostream>
using namespace std;
int N;
int list[100000];

void Swap(int a, int b){
    int temp = list[a];
    list[a] = list[b];
    list[b] = temp;
}

// 冒泡排序: 两个相邻的元素做比较
void Bubble_sort(){
    for (int i = N - 1; i > 0; --i) {
        int flag = 0;
        for (int j = 0; j < i; ++j) {
            if (list[j] > list[j + 1]) {
                Swap(j,j+1);
                flag = 1;
            }
        }
        if (!flag) break;
    }
}

// 一直保证前面的序列是递增的
void Insert_Sort(){
    for (int i = 1; i < N; ++i) {
        for (int j = i - 1; j >= 0 && list[j] > list[j + 1]; --j) {
            Swap(j, j + 1);
        }
    }
}

int main(){
    cin >> N;
    for (int i = 0; i < N; ++i) {
        cin >> list[i];
    }

    Insert_Sort();
    cout << list[0];
    for (int j = 1; j < N; ++j) {
        cout <<  " " << list[j];
    }
    return 0;
}

测试结果

上一篇 下一篇

猜你喜欢

热点阅读