
Algorithms C/C++
H_earbeats
这个作者很懒,什么都没留下…
展开
-
Insertion Sort(插入排序)
插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。例如有一个长度为N的无序数组,进行N-1次的插入即能完成排序;第一次,数组第1个数认为是有序的数组,将数组第二个元素插入仅有1个有序的数组中;第二次,数组前两个元素组成有序的数组,将数组第三个元素插入由两个元素构成的有序数组中……第N-1次,数组前N-1个元素组成有序的数组,将数组的第N个元素插入由N-1个元素构成的有序数组中,则完成了整原创 2017-08-07 15:07:05 · 2384 阅读 · 0 评论 -
Selection Sort(选择排序)
核心代码template<typename T>void selectionSort( T arr[], int n){ for (int i = 0; i < n; i++){ int minIndex = i; for(int j = i + 1; j < n; j++){ if(arr[j] < arr[minIndex]) m原创 2017-08-07 14:57:14 · 1483 阅读 · 0 评论 -
Bubble-Sort(冒泡排序)
设有一数组,其大小为10个元素(int str[10])数组内的数据是无序。现在要求我们通过编程将这个无序的数组变成一个从小到大排序的数组(从下标为0开始)首先,把10个数里最小的个数放到下标为0的位置上(str[0])通过将下标为0的数(str[0])与剩下其余9个数进行对比交换(将较少者放置在下标为0的位置上),就可以得到这10个数最小的那个10个数最小的那位确定后,接下来就要找剩下9原创 2017-08-07 15:16:45 · 464 阅读 · 0 评论 -
O(n^2) 排序算法汇总
O(n^2)选择排序#include using namespace std;template typename T>void selectionSort(T arr[], int n){ for(int i = 0; i n; i++){ int minIndex = i; for(int j = i + 1; j n; j++){ if( arr[j] arr[m原创 2017-11-08 22:23:14 · 298 阅读 · 0 评论 -
归并排序(nlogn)
归并排序(自顶而下)#include #include "InsertionSort.h"using namespace std;//将arr[l..mid]和arr[mid+1...r]两部分进行归并templatetypename T>void __merge(T arr[], int l, int mid, int r){ T aux[r-l+1]; for(int i = l; i原创 2017-11-19 20:17:33 · 386 阅读 · 0 评论