1. 程式人生 > >八大排序演算法自我實現

八大排序演算法自我實現

下面是的程式碼都是C++ 實現的
1.插入排序—直接插入排序(Straight Insertion Sort)

#pragma once
#include "JudgmentCondition.h"
void InsertionSort(int *arr, int arrsize, bool sortMethod)
{
    int i = 0;
    functionPointer fun = retfun(sortMethod);

    for (int i = 1; i < arrsize; ++i)
    {
        int sentryPost = arr[i];
        for
(int j = 0; j < i; ++j) { if (fun(arr[j], sentryPost)) { exchange(sentryPost, arr[j]); } } exchange(arr[i], sentryPost); } }
  1. 插入排序—希爾排序(Shell`s Sort)
  2. 選擇排序—簡單選擇排序(Simple Selection Sort)
  3. 選擇排序—堆排序(Heap Sort)
  4. 交換排序—氣泡排序(Bubble Sort)
#pragma once
#include "JudgmentCondition.h"
void BubbleSort(int *arr, int arrsize, bool sortMethod)
{
    bool isBreak;
    int i = 0;
    functionPointer fun = retfun(sortMethod);
    while (true)
    {
        if (i >= arrsize - 1)
        {
            if (isBreak)
                break;
            i = 0
; isBreak = true; } if (fun(arr[i], arr[i + 1])) { exchange(arr[i], arr[i + 1]); isBreak = false; } ++i; } }
  1. 交換排序—快速排序(Quick Sort)
  2. 歸併排序(Merge Sort)
  3. 桶排序/基數排序(Radix Sort)

沒寫完。。。待完善。。