本文为大大维原创,最早于博客园发表,转载请注明出处!!!

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++]几种排序的更多相关文章

  1. iOS可视化动态绘制八种排序过程

    前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...

  2. 模板化的七种排序算法,适用于T* vector<T>以及list<T>

    最近在写一些数据结构以及算法相关的代码,比如常用排序算法以及具有启发能力的智能算法.为了能够让写下的代码下次还能够被复用,直接将代码编写成类模板成员函数的方式,之所以没有将这种方式改成更方便的函数模板 ...

  3. 几种排序算法的学习,利用Python和C实现

    之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...

  4. ACM 一种排序

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...

  5. 秒杀9种排序算法(JavaScript版)

    一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...

  6. nyoj 8 一种排序

    一种排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...

  7. JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)

    每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名 ...

  8. java数组中的三种排序方法中的冒泡排序方法

    我记得我大学学java的时候,怎么就是搞不明白这三种排序方法,也一直不会,现在我有发过来学习下这三种方法并记录下来. 首先说说冒泡排序方法:冒泡排序方法就是把数组中的每一个元素进行比较,如果第i个元素 ...

  9. PHP的几种排序算法的比较

    这里列出了几种PHP的排序算法的时间比较的结果,,希望对大家有所帮助 /* * php 四种排序算法的时间与内置的sort排序比较 * 3000个元素,四种算法的排序所用的时间比较 * 冒泡排序 85 ...

  10. java实现8种排序算法(详细)

    八种排序分别是:直接插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 希尔排序在时间性能上优于直接插入排序,但希尔排序是一种不稳定排序. 快速排序的时间性能也优于冒泡 ...

随机推荐

  1. 【官方下载】EasyCMDB官方基础版免费下载使用!

    链接

  2. JavaScrpt常用的封装方法

    1.闭包封装.在这个封装方法中,所有的实例成员都共享属性和方法, 使得所有得方法和属性都私有且对象间共享 (function ($) { var Person = function(name) { r ...

  3. GIS开发 图形常见算法

    摘录:OSGeo中国中心 http://www.osgeo.cn/post/ae457 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简 ...

  4. 记录下curl的使用方法

    curl是一个可以在命令行中直接发起请求的工具,基础用法如下: curl localhost:6767/1.html //返回url对应的页面内容 curl localhost:6767/1.html ...

  5. 小程序中使用阿里图标库iconfont

    小程序中使用阿里图标库iconfont 项目中常常需要使用到字体图标,微信小程序中使用字体图标与在平常的web前端中类似但是又有区别.下面以使用阿里图标为例子讲解如何在微信小程序中使用字体图标. 第一 ...

  6. 【网址】ILSpy,C# .net/dot net的反编译工具

    ILSpy官网:http://ilspy.net/ ILSpy中文版:http://www.fishlee.net/soft/ilspy_chs/

  7. 模仿WC.exe的功能实现--node.js

    Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ...

  8. C# deep copy List

    https://stackoverflow.com/questions/14007405/how-create-a-new-deep-copy-clone-of-a-listt 1. copy lis ...

  9. The innodb_system data file 'ibdata1' must be writable

    在安装MySQL的时候报的错,我理解的这个错是因为有个文件是Innodb需要在安装MySQL(或者创建数据库的时候)的时候需要写入这个文件,但是他现在没有写的权限. 日志中的错误是: 5.7版本以前是 ...

  10. vue-router同路由$router.push不跳转一个简单解决方案

    vue-router同路由$router.push不跳转一个简单解决方案 vue-router跳转一般是这么写: toCurrentPage: function(thisId){ this.$rout ...