[C++]几种排序
本文为大大维原创,最早于博客园发表,转载请注明出处!!!
1.冒泡:
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<iostream>
using namespace std;
int main()
{
int n;
cout<<"INPUT NUM"<<endl;
cin>>n;
const int cn=n;
int num[cn],
srand(static_cast<unsigned>(time(NULL)));
for(auto &s:num)
{
s=rand()%;
}
for(auto s:num)
cout<<s<<" ";
cout<<endl;
for(int i=; i<cn; i++)
{
for(int j=; j<cn-i; j++)
{
if(num[j]>num[j+])
{
int temp=num[j];
num[j]=num[j+];
num[j+]=temp;
}
}
}
for(auto s:num)
cout<<s<<" ";
cout<<endl;
return ;
}
2.快速
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
/*
6 @快序排列算法的实现
7 */
int partition(int data[],int m,int p)///返回p,使得data[p]是第p小的值
{
int i=m,j=data[i];///j是划分元素
bool flag=true;
while(flag)
{
do
i++;
while(data[i]<j);
do
p--;
while(data[p]>j);
if(i<p)
{
int temp;
temp=data[i];
data[i]=data[p];
data[p]=temp;
}
else
flag=false;
}
data[m]=data[p];
data[p]=j;
return p;
}
void quicksort(int data[],int low,int high)
{
if(low<high)
{
int temp=high+;
temp=partition(data,low,temp);
quicksort(data,low,temp-);
quicksort(data,temp+,high);
}
}
int main()
{
/*
47 @产生一个规模为CNT的,范围为[RANDMIN,RANDMAX)的随机数组,并显示
48 */
int cnt,randmin,randmax;
cout<<"Please Input 'CNT' 'RANDMIN' 'RANDMAX'"<<endl;
cin>>cnt>>randmin>>randmax;
const int CNT=cnt,
RANDMIN=randmin,
RANDMAX=randmax;
int Data[CNT];
srand((unsigned)time(NULL));
for(int i=; i<CNT; i++)
Data[i]=RANDMIN+rand()%(RANDMAX-RANDMIN);
cout<<"Before Change,Data="<<endl;
for(int i=; i<CNT; i++)
cout<<Data[i]<<" ";
cout<<endl;
/*
64 @将数组用快速排序算法排序,并显示
65 */
quicksort(Data,,CNT-);
cout<<"After Change,Data="<<endl;
for(int i=; i<CNT; i++)
cout<<Data[i]<<" ";
cout<<endl;
return ;
}
[C++]几种排序的更多相关文章
- iOS可视化动态绘制八种排序过程
前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...
- 模板化的七种排序算法,适用于T* vector<T>以及list<T>
最近在写一些数据结构以及算法相关的代码,比如常用排序算法以及具有启发能力的智能算法.为了能够让写下的代码下次还能够被复用,直接将代码编写成类模板成员函数的方式,之所以没有将这种方式改成更方便的函数模板 ...
- 几种排序算法的学习,利用Python和C实现
之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...
- ACM 一种排序
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...
- 秒杀9种排序算法(JavaScript版)
一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...
- nyoj 8 一种排序
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...
- JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)
每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名 ...
- java数组中的三种排序方法中的冒泡排序方法
我记得我大学学java的时候,怎么就是搞不明白这三种排序方法,也一直不会,现在我有发过来学习下这三种方法并记录下来. 首先说说冒泡排序方法:冒泡排序方法就是把数组中的每一个元素进行比较,如果第i个元素 ...
- PHP的几种排序算法的比较
这里列出了几种PHP的排序算法的时间比较的结果,,希望对大家有所帮助 /* * php 四种排序算法的时间与内置的sort排序比较 * 3000个元素,四种算法的排序所用的时间比较 * 冒泡排序 85 ...
- java实现8种排序算法(详细)
八种排序分别是:直接插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 希尔排序在时间性能上优于直接插入排序,但希尔排序是一种不稳定排序. 快速排序的时间性能也优于冒泡 ...
随机推荐
- Windows系统Nessus离线(Offline) 版的安装
Nessus离线(offline)版可以在局域网内进行系统漏洞扫描,下面简单介绍其windows系统版本的安装过程. 1. 登陆Tenable网站: https://www.tenable.com/ ...
- SpringBoot关于SpringDataJpa中findOne()方法报错问题
问题描述: 首先用的SpringDataJPA的1.11版本,可以使用findOne()方法根据id查询 然后我使用了2.0.5版本,发现findOne()方法报错了,不能用来当作根据id查询了. 当 ...
- robot_framework环境搭建
1.python安装(必须是python2) 下载地址:https://www.python.org/ 2.setuptools安装 下载地址:https://pypi.python.org/pypi ...
- 《Coderxiaoban团队》第二次作业:团队项目选题报告
<Coderxiaoban团队>第二次作业:团队项目选题报告 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验六 团队作业2:团队项目选题 团队名称 Co ...
- composer常用的一些命令\参数\说明
安装 curl -sS https://getcomposer.org/installer | php 或者 php -r "readfile('https://getcomposer.or ...
- 笔记:stm32 printf重定向到UART疑点解析
在调试过程中往往需要通过打印来看系统运行状态:在STM32平台上,打印重定向有多种实现方案:其一是编译时使用keil自带的MacroLIB,据说这个库对一些C语言基础设施做了新的实现,代码结构更加紧凑 ...
- Linux—shell中$(( ))、$( )、``与${ }的区别
命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. exp 1 [ ...
- Object.keys方法之详解
在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b' ...
- Unity中Terrain中刷出的树木模糊解决办法
Billboard Start 该项用于设定摄像机将树渲染为广告牌的距离.
- Android : Camera之camx hal架构
一.camx的代码结构 目前主流的机型都使用camx架构,这个架构和之前架构的主要区别就是 芯片接口层的代码从hardware/qcom 迁移到 vendor/qcom/proprietary/下面, ...