c++几种排序算法代码
#include <iostream>
#include <vector>
using namespace std; //交换int
void swap(int& a, int& b){
int temp = a;
a = b;
b = temp;
} //冒泡
void BulletSort(vector<int>& nums){
int n = nums.size();
for (int i = ; i < nums.size()-; i++){
for (int j = ; j < nums.size() - i -; j++){
if (nums[j] > nums[j+]){
swap(nums[j], nums[j+]);
}
}
}
} //快排
void fastSort(vector<int>&num, int first, int last){
if (first < last){
int i = first;
int j = last;
int seed = num[i];
while (i<j){
while (i < j && num[j] >= seed){
j--;
}
if (i < j){
num[i++] = num[j];
}
while (i <j && num[i] <= seed){
i++;
}
if (i < j){
num[j--] = num[i];
}
}
num[i] = seed;
fastSort(num, first, i - );
fastSort(num, i + , last);
} } //插入
void InsertSort(vector<int>& nums){
int n = nums.size();
for (int i = ; i < n; i++){
for (int j = i; j > ; j--){
if (nums[j] < nums[j - ]){
swap(nums[j], nums[j - ]);
}
}
}
} //归并数组
void mergeArray(vector<int>&nums, int first, int mid, int last, vector<int>temp){
int i = first;
int j = mid + ;
int m = mid;
int n = last;
int k = ;
while (i <= m&& j<=n){
if (nums[i] < nums[j]){
temp[k++] = nums[i++];
}
else{
temp[k++] = nums[j++];
}
}
while (i<=m){
temp[k++] = nums[i++];
}
while (j <= n){
temp[k++] = nums[j++];
}
for (int i = ; i < k; i++)
{
nums[first+i] = temp[i];
}
} //归并
void mergeSort(vector<int>& nums, int first, int last, vector<int>temp){
if (first<last){
int mid = (first + last) / ;
mergeSort(nums, first, mid, temp);
mergeSort(nums, mid + , last, temp);
mergeArray(nums,first,mid,last,temp); }
} int main()
{
vector<int>test;
vector<int>temp(, );
test.push_back();
test.push_back();
test.push_back();
test.push_back();
//BulletSort(test);
//fastSort(test, 0, 3);
//InsertSort(test);
//mergeSort(test, 0,3,temp);
return ; } 几种算法的比较如下图所示

c++几种排序算法代码的更多相关文章
- Java 的八种排序算法
Java 的八种排序算法 这个世界,需要遗忘的太多. 背景:工作三年,算法一问三不知. 一.八种排序算法 直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序. 二.算 ...
- 几种排序算法的学习,利用Python和C实现
之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...
- 学习Java绝对要懂的,Java编程中最常用的几种排序算法!
今天给大家分享一下Java中几种常见的排序算法的Java代码 推荐一下我的Java学习羊君前616,中959,最后444.把数字串联起来! ,群里有免费的学习视频和项目给大家练手.大神有空时也 ...
- 排序—时间复杂度为O(n2)的三种排序算法
1 如何评价.分析一个排序算法? 很多语言.数据库都已经封装了关于排序算法的实现代码.所以我们学习排序算法目的更多的不是为了去实现这些代码,而是灵活的应用这些算法和解决更为复杂的问题,所以更重要的是学 ...
- java算法03 - 常用的8种排序算法
Java常用的八种排序算法: 插入排序 - 直接插入排序 每次将待排序的记录按照关键字的大小,插入到前面已经排好序的记录的适当位置.直到全部记录插入完成. 代码实现 /** * 直接插入排序 O(n^ ...
- 史上最全单链表的增删改查反转等操作汇总以及5种排序算法(C语言)
目录 1.准备工作 2.创建链表 3.打印链表 4.在元素后面插入元素 5.在元素前面增加元素 6.删除链表元素,要注意删除链表尾还是链表头 7.根据传入的数值查询链表 8.修改链表元素 9.求链表长 ...
- JavaScript实现的7种排序算法
所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序.这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率.对于排序,我们首先要求 ...
- 秒杀9种排序算法(JavaScript版)
一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...
- PHP的几种排序算法的比较
这里列出了几种PHP的排序算法的时间比较的结果,,希望对大家有所帮助 /* * php 四种排序算法的时间与内置的sort排序比较 * 3000个元素,四种算法的排序所用的时间比较 * 冒泡排序 85 ...
随机推荐
- XP单机版安装金蝶K3的13.1版本号,金蝶K3Wise安装步骤,安装成功
在我们安装金蝶K3时往往会出现各种报错.主要是由于我们的Windows Xp操作系统是Ghost版本号.或者是windows XP HOME或者是精简版,因此某些组件在系统里没有.导致我们安装金蝶K3 ...
- 14.boost最小生成树 kruskal_min_spainning_tree
#include <iostream> #include <boost/config.hpp> //图(矩阵实现) #include <boost/graph/adjac ...
- BigDecimal相除异常
使用两个BigDecimal类型的数字做除法运算时,出现了一个如下的异常信息: 1 java.lang.ArithmeticException: Non-terminating decimal exp ...
- jquery的clone()引发的问题,下拉框点击没有反应
此段代码是对某块元素的移位:上移.下移.对比修改前后的两段代码: 修改前: //点击移位 function move(obj,posi){ var al=$(obj).parent('li').par ...
- 忽略PyCharm4中特定的警告提示信息
有一种简单的方式忽略PyCharm4中的警告,光标放在下划线上,a. 等灯泡出现,点击灯泡或者b. 按下Alt和Enter键,选择'Ignore errors like this'. 或者,在设置里更 ...
- windows py-faster-rcnn配置
[原创帖!转载请注明] windows faster-rcnn安装一直会出现各种错误,本人在实验室电脑成功安装后,在自己电脑上同样的安装步骤也成功.所以做个总结,希望对大家有帮助. 一:安装环境 1. ...
- SpringBoot学习笔记(10)-----SpringBoot中使用Redis/Mongodb和缓存Ehcache缓存和redis缓存
1. 使用Redis 在使用redis之前,首先要保证安装或有redis的服务器,接下就是引入redis依赖. pom.xml文件如下 <dependency> <groupId&g ...
- 壹、js的概述
一.js的起源 1992年的时候,一家名为Nomnas的公司开发出了c减减的嵌入式脚本语言:然后利用分享的方式,扩大其市场. 之后,Netscape为了扩展浏览器的功能,开发了一个名为LiveScri ...
- BZOJ 2794 [Poi2012]Cloakroom(离线+背包)
2794: [Poi2012]Cloakroom Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 406 Solved: 241[Submit][St ...
- kubernetes 项目
1:CI/CD Docker: Harbor Git Jenkins 2:微服务 istio