[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种排序算法(详细)
八种排序分别是:直接插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 希尔排序在时间性能上优于直接插入排序,但希尔排序是一种不稳定排序. 快速排序的时间性能也优于冒泡 ...
随机推荐
- opencv使用总结
在resize矩阵时出现报错 (-215) func != 0 in function cv::resize" 很可能是矩阵未设置为float,应该在读入后转换类型 item = item. ...
- win2012R2 的IIS报错HTTP404,报错在计算机上找不到服务W3SVC等等
一.背景 今天远程给客户解决IIS的默认网页浏览找不到文件夹,报错HTTP404,找了很多原因,而且也报错在计算机上找不到服务W3SVC等等,如图所示: 二.原因 试了很多方法都不可以重装IIS都不行 ...
- JavaScript入门篇
记录一下在慕课网学习JavaScript的过程. 以下内容均来自慕课网. 传送:https://www.imooc.com/code/401 为什么学习JavaScript 1. 所有主流浏览器都支持 ...
- Angular7.1.4+Typescript3.1框架学习(三)
接着第二部分,这部分介绍常见angular指令使用 1. 在父页面文件中添加组件(通过ng命令生成的component) <app-messages></app-messages&g ...
- python_vlc 播放http流
由于工作需要,项目功能测试用到python调用vlc,用于播放一些直播流,各种尝试后终于可以了,其实蛮简单的,就是由于没有参考自己折腾挺浪费时间的,所以把结果贴出来给需要用到的人. 准备工作: 1.首 ...
- linux常用命令 sort排序命令
排序命令sort sort [选项] 文件名 选项 -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型进行排序 -r 反向排序 -t 指定分割符,默认的分割符是制表符 -k n[,m] 安装自 ...
- baidu-map
1 var map = new BMap.Map("wcp"); // 创建Map实例 2 map.centerAndZoom(new BMap.Point(9.123469591 ...
- 微信小程序 遇到的问题(新)
1.调用wx.chooseImage(),调用系统相册,此时相册中的动图被转化成静态图,上传后也是静态图. 2.刚进微信小程序,onShow在安卓机下会调用两遍,iPhone下正常
- 本人亲身讲解本科期间学习Linux系统过程
学习Linux也有一段时间了,回首这段时光,既迷茫过也既充实过.当时刚接触Linux是在大学,身边的同学都在学习,我想我也该学点一技之长了.我本科并不是计算机专业的,关于软件的课程也就只有C++,所以 ...
- 庄博园的Mp4