各種排序演算法集合

2021-07-05 13:40:37 字數 1546 閱讀 8881

//

#include "stdafx.h"

#include

#include

#include

using

namespace

std;

void insertsort(int *a, int n);

void shellinsertsort(int *a, int n, int d);

void shellsort(int *a, int n);

void selectsort(int *a, int n);

void adjustheap(int *a, int start, int end);

void buildheap(int *a, int n);

void heapsort(int *a, int n);

int partition(int *a, int start, int end);

void quicksort(int *a, int start, int end);

int main(int argc, char *argv)

//insertsort(a, n);

//shellsort(a, n);

//void heapsort(int *a, int n);

//selectsort(a, n);

quicksort(a, 0, n - 1);

cout

<< "after sort "

<< endl;

for (int i = 0; i < n; i++)

system("pause");

}void insertsort(int *a, int n)//插入排序-簡單插入排序

a[j + 1] = x;}}

}void shellsort(int *a, int n)//插入排序-希爾排序

}void shellinsertsort(int *a, int n, int d)//以d為增量來進行希爾排序

a[j + d] = x;}}

}void selectsort(int *a, int n)//選擇排序-簡單選擇排序

if (minindex != i)

}}void heapsort(int *a, int n)//選擇排序-堆排序

}void buildheap(int *a, int n)//建堆

}void adjustheap(int *a, int start, int end)//start為堆頂 end為最後乙個元素的下標加1 將其調整為乙個大根堆

else

break;

}a[f] = temp;

}void quicksort(int *a, int start, int end)//交換排序-快速排序

}int partition(int *a, int start, int end)//確定基準點的位置 並返回基準點最後的位置下標

a[start] = temp;

return start;

}

各種排序演算法大集合

電腦程式就是資料結構加演算法。可見演算法在計算機世界的重要性,本文所述的演算法是指基礎通用的查詢和排序演算法,其是其他更複雜演算法的基礎,總結在此以備將來查閱。排序演算法又分為好多種 簡單排序 sorts 1.1 插入排序 insertion sort 1.2 選擇排序 selection sort...

排序 各種排序演算法

每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子表中適當位置,直到全部記錄插入完成為止 待排序的記錄放在陣列r 0,n 1 中 排序過程中將r分成兩個子區間,有序區r 0,i 1 無序區r i,n 1 將當前無序區的第1個記錄,插入到有序區中適當的位置上 每次是有序區增加乙個記錄,知道...

各種排序演算法

交換函式 void swap int a,int b 氣泡排序 氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排...