排序

#include <stdio.h>
#include <algorithm>
using namespace std;

void bubble(int *a, int len) {
    for(int i = 0; i < len - 1; i++)
        for(int j = 0; j < len - i - 1; j++)
            if(a[j] > a[j + 1]) swap(a[j], a[j + 1]);
}

void select(int *a, int n) {
    for(int i = 0; i < n - 1; i++) {
        int min = i;
        for(int j = i + 1; j < n; j++)
            if(a[min] > a[j]) min = j;
        if(min != i) swap(a[min], a[i]);
    }
}

void insert(int *a, int n) {
    for(int i = 0; i < n; i++) {
        int temp = a[i];
        int j = i - 1;
        while(j >= 0 && a[j] > temp) {
            a[j + 1] = a[j];
            j--;
        }
        if(j != i - 1) a[j + 1] = temp;
    }
}

void quick(int *a, int left, int right) {
    if(left >= right) return ;
    int i = left, j = right, key = a[left];
    while(i < j) {
        while(i < j && key <= a[j]) j--;
        a[i] = a[j];
        while(i < j && key >= a[i]) i++;
        a[j] = a[i];
    }
    a[i] = key;
    quick(a, left, i - 1);
    quick(a, i + 1, right);
}

int main(int argc, char *argv[]) {

    int a[6] = {1, 3, 2, 5, 4, 2};

    //bubble(a, 6);
    //select(a, 6);
    //insert(a, 6);
    //quick(a, 0, 6);

    for(int i = 0; i < 6; printf("%d ", a[i++])) ;

    return 0;
}

 

posted on 2015-09-20 14:18  Susake  阅读(153)  评论(0编辑  收藏  举报

导航