//
#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,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排...