排序算法
zszszs1994
研究生在读...
展开
-
快速排序算法
//快速排序算法:/* 对于一个给定的数组,从中选择一个元素,以该元素为界将其余的元素划分为两个子集, 一个子集的所有元素都小于该元素,另一个元素的所有子集都大于或等于该元素。对这样 两个子集递归执行这一过程,当某个子集中的元素数小于2时,这个子集就不需要再次排序 以数组a[] = {5,9,6,8,7,3,1,4,0,2}为例 5,9,6,8,7,3,1,4,0,2转载 2016-10-22 17:16:00 · 258 阅读 · 0 评论 -
插入排序算法和冒泡排序算法
//插入排序算法/* 插入排序算法就是先把最开始的两个数进行排序,然后第三个插入前两个之中,第四个数插入前三个数中,以此类推 例如:1,5,9,6,3,2,8,7,4,0 1,5,9,6,3,2,8,7,4,0 1,5,6,9,3,2,8,7,4,0 1,3,5,6,9,2,8,7,4,0 1,2,3,5原创 2016-10-23 10:59:08 · 320 阅读 · 0 评论 -
基数排序
基数排序详见《数据结构与算法分析》40页//待排序vector中数的最大位数int maxbit(const vector<int>& unSort){ int maxb = 0; for (int i = 0; i<unSort.size(); i++) { int tempMaxb = 1; int tempNum = unSort[i原创 2017-12-13 16:19:28 · 200 阅读 · 0 评论 -
快速排序和插入排序
基于《数据结构与算法分析》182页,写的快速排序。对于枢纽元的选择使用三数中值分割法。#include<iostream>#include<vector>#define cutOff 3using namespace std;//三数中值分割方法int Media3(vector<int>& vecUnsort, int left, int right){ int center =原创 2018-01-03 16:48:00 · 561 阅读 · 0 评论 -
归并排序
#include<iostream>#include<vector>using namespace std;//将两个排好序的序列合并void merge(vector<int>& data, int start, int mid, int end){ vector<int> tmp(end - start + 1); int...原创 2018-09-21 09:56:22 · 200 阅读 · 0 评论