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

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. 关于spark写入文件至文件系统并制定文件名之自定义outputFormat

    引言: spark项目中通常我们需要将我们处理之后数据保存到文件中,比如将处理之后的RDD保存到hdfs上指定的目录中,亦或是保存在本地 spark保存文件: 1.rdd.saveAsTextFile ...

  2. 【调试】Idea如何远程debug之tomcat war包启动

    一.修改tomcat配置并启动 1.修改tomcat bin目录下的startup.sh配置,定位startup.sh最后一行,使用jpda  start启动 即将exec "$PRGDIR ...

  3. [GXOI/GZOI2019]旅行者

    就我感觉这道题很神仙吗/kel 仔细想想应该也是一种适用范围挺广的做法. 考虑我们可以通过dijkstra在O(nlogn)求出一个点集到另外一个点集的最短路. 那么我们可以通过一些划分点集的方式使得 ...

  4. Android 中正则表达式工具类

    package com.example.administrator.magiclamp.utils; import java.util.regex.Pattern; /** * 校验器:利用正则表达式 ...

  5. 九度1456胜利大逃亡【BFS】

    时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:4432 解决:1616 题目描述: Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡 ...

  6. 【js】【图片瀑布流】js瀑布流显示图片20180315

    js实现把图片用瀑布流显示,只需要“jquery-1.11.2.min.js”. js: //瀑布流显示图片 var WaterfallImg = { option: { maxWidth: 850, ...

  7. DBlink 创建 删除 脚本

    --配置SQLSERVER数据库的DBLINK --删除dblink Exec sp_droplinkedsrvlogin test,Null Exec sp_dropserver test --创建 ...

  8. php上传文件,接口是java,go。

    $uri = ‘https://www.xxx.com/api/xxxxx’; $ch = curl_init(); //加@符号curl就会把它当成是文件上传处理 $tmpName = $_FILE ...

  9. angular2学习笔记3

    一.项目搭建 二.生成首页的4个tab页面 三.运行部署及配置

  10. jQuery和Vue的区别

    1.jQuery和Vue的区别 jQuery是使用选择器($)选取DOM对象,对其进行赋值.取值.事件绑定等操作,其实和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起 ...