各种排序 简单的算法实现
来源:互联网 发布:淘宝图书怎么样 编辑:程序博客网 时间:2024/06/06 02:31
#include <iostream>#include <vector>#include <stdio.h>#include <algorithm>#include <iomanip>#include <string>#include <cstdio>#include <string.h>#include <set>#include <cmath>#include <map>using namespace std;int Parition(vector<int> &v1, int low, int high){ int pivot = v1[low]; while(low < high){ while(low < high && v1[high] >= pivot){ high--; } v1[low] = v1[high]; while(low < high && v1[low] <= pivot){ low++; } v1[high] = v1[low]; } v1[low] = pivot; return low;}void QuickSort(vector<int> &v1, int begin, int end){ if(begin >= end){ return ; } int pivot = Parition(v1, begin, end); QuickSort(v1, begin, pivot - 1); QuickSort(v1, pivot + 1, end);}void MaoPao(vector<int> &v1){ for(int i = 0; i < v1.size() - 1; i++){ for(int j = 0; j < v1.size() - i - 1; j++){ if(v1[j] >= v1[j + 1]){ int temp = v1[j]; v1[j] = v1[j + 1]; v1[j + 1] = temp; } } }}void SimpleXuanze(vector<int> &v1){ for(int i = 0; i < v1.size(); i++){ int k = i; for(int j = i + 1; j < v1.size(); j++){ if(v1[j] <= v1[k]){ k = j; } } int temp = v1[k]; v1[k] = v1[i]; v1[i] = temp; }}void InsertSort(vector<int> &v1){ for(int i = 1; i < v1.size(); i++){ if(v1[i] > v1[i - 1]) continue; int temp = v1[i]; v1[i] = v1[i - 1]; int j; for(j = i - 1; j > 0 && v1[j - 1] > temp; j--){ v1[j] = v1[j - 1]; } v1[j] = temp; }}void ShellSort(vector<int> &v1){ int increments[] = {5, 3, 1}; int i, j, k; int temp; for(k = 0; k < 3; k++){ for(i = increments[k]; i < v1.size(); i++){ temp = v1[i]; for(j = i; j >= increments[k]; j -= increments[k]){ if(temp >= v1[j - increments[k]]) break; v1[j] = v1[j - increments[k]]; } v1[j] = temp; } }}int main(){freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);int n;vector<int> v1; while(scanf("%d", &n) != EOF){ v1.push_back(n); } //QuickSort(v1, 0, v1.size() - 1); //快速排序 //sort(v1.begin(), v1.end()); //STL运用 //MaoPao(v1); //冒泡排序 //SimpleXuanze(v1); //简单选择排序 //InsertSort(v1); //插入排序 //ShellSort(v1); //希尔排序 for(vector<int>::iterator iter = v1.begin(); iter != v1.end(); iter++){ cout << *iter << " "; } return 0;}
0 0
- 各种排序 简单的算法实现
- OC实现的各种简单常见的排序算法
- OC实现的各种简单常见的排序算法
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的实现
- 各种排序算法的简单描述
- 各种排序算法实现
- 各种排序算法实现
- 各种排序算法实现
- 各种排序算法的java实现
- 各种排序算法的C实现
- 各种排序算法的C实现(转载)
- 对JAVA静态成员的理解
- Enabling Software BCH ECC on a Linux Platform
- windows 7 调整无线和有线网络的优先级
- javaSE_8系列博客——Java语言的特性(三)--类和对象(19)--嵌套类(Lambda 表达式)
- linux cd
- 各种排序 简单的算法实现
- Linux安装一揽子解决方案
- Android studio配置
- SVN unknown host
- linux pwd
- 关于unity中3DText的使用
- 手机或者邮箱登陆 mysql查询语句
- Out of memory Error (5.0)
- mysql--连接查询和子查询