#include<stdio.h>
#include<stdlib.h>
#include<windows.h> #define SIZE 5 //数组中元素的数量 void swap(int *p1, int *p2) //交换数组中的两个元素
{
int temp = *p1; //创建变量储存元素p1的指针
*p1 = *p2; //将元素p1的指针改为元素p2的指针
*p2 = temp; //将元素p2的指针改为之前存储的元素p1的指针
} int main() //程序从这里开始运行
{
int array[SIZE]; //创建一个数组
printf("未排序数组:\n\n");
for (int i = ; i < SIZE; i++) //遍历数组中所有元素
{
array[i] = rand(); //数组中每个元素赋值为一个随机数
printf("%d\n", array[i]); //输出还未排序的数组中所有元素
}
printf("\n\n按下任意键开始排序");
getchar(); //等待用户响应
system("cls"); //清除所有输出结果 int l = -, u = SIZE - ; //定义我们需要寻找最值并排序的初始区间[0,SIZE]为全集
for (l++; l < u; u--)//遍历已排序区间[0,l]∪[u,SIZE]的补集(即遍历未排序区间)
{//当l >= u时,区间(l,u)为空集,跳出循环
int max = , min = ; //创建用于存储最大值下标和最小值下标的变量
for (int i = ; i <= u; i++) //遍历数组在未排序区间中的所有元素
{
min = array[min]>array[i] ? i : min; //寻找数组在未排序区间中最小值的下标
max = array[max]<array[i] ? i : max; //寻找数组在未排序区间中最大值的下标
}
swap(&array[l], &array[min]); //交换数组在未排序区间中的最小值与数组在未排序区间左端点的值
swap(&array[u], &array[max]); //交换数组在未排序区间中的最大值与数组在未排序区间右端点的值
printf("数组正在排序:\n\n");
for (int i = ; i < SIZE; i++)
{
printf("%d\n", array[i]);
}
system("cls"); //清除所有输出结果
}
printf("排序后数组:\n\n");
for (int i = ; i < SIZE; i++) //遍历排序完后数组中所有元素
{
printf("%d\n", array[i]); //输出排序后的数组中所有元素
}
getchar(); //等待用户响应(防止程序自动退出)
return ;
}

C++数组排序的更多相关文章

  1. CSharpGL(36)通用的非托管数组排序方法

    CSharpGL(36)通用的非托管数组排序方法 如果OpenGL要渲染半透明物体,一个方法是根据顶点到窗口的距离排序,按照从远到近的顺序依次渲染.所以本篇介绍对 UnmanagedArray< ...

  2. ***PHP 数组排序 +php二维数组排序方法(PHP比较器)

    PHP - 一维数组的排序函数 在本节中,我们将学习如下 PHP 数组排序函数: sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组 ...

  3. JS二维数组排序组合

    需求是这样的:http://q.cnblogs.com/q/29093/ 这里简述一下: 现在有一个不确定长度的数组.比如:var temp=[["Fu","Hai&qu ...

  4. PHP的数组排序函数

    <?php class order{ /** * * 数组排序 * @param array $arr 例如: * array ( array ( 'deskId' => '460646' ...

  5. Java通过几种经典的算法来实现数组排序

    Java实现数组排序 package com.souvc.hibernate.exp; public class MySort { /** * 方法名:main</br> * 详述:Jav ...

  6. Java实现数组排序

    package com.souvc.hibernate.exp; public class MySort { /** * 方法名:main</br> * 详述:Java实现数组排序 < ...

  7. PHP二维数组排序(list_order)

    /** * 对二维数组进行排序 * 模拟 数据表记录按字段排序 * * <code> * @list_order($list, $get['orderKey'], $get['orderT ...

  8. 数组排序sort()

    数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码 ...

  9. Java Arrays类进行数组排序

    排序算法,基本的高级语言都有一些提供.C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array).用这些排序时,都可以写自己的排序规则. Java API对A ...

  10. JavaScript自学之数组排序

    <html> <head> <title>数组排序</title> <script type="text/javascript" ...

随机推荐

  1. mysql sql_mode=only_full_group_by问题?

    视图查询的时候本地数据库报错: 解决办法: 1.查看sql_mode select @@global.sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_Z ...

  2. CSS3 的box-shadow进阶之 - 基础知识篇

    box-shadow被认为是CSS3最好的特性之一,发挥想象力,搭配其它属性,可以做出很多好看的效果(如下图,将会放在下一篇文章讲解),这篇文章主要讲一下box-shadow的基础知识.       ...

  3. outline: none;

    outline: none:用在去掉某个选中后显示的外边框,(追求细节) http://www.w3school.com.cn/cssref/pr_outline.asp

  4. css 中的grid布局基础

    CSS Grid Layout为CSS引入了一个二维网格系统.网格可用于布局主要页面区域或小型用户界面元素. 网格是一组交叉的水平和垂直线 - 一组定义列,其他行.元素可以放在网格上,以行或者列为标准 ...

  5. POJ 3126 Prime Path bfs, 水题 难度:0

    题目 http://poj.org/problem?id=3126 题意 多组数据,每组数据有一个起点四位数s, 要变为终点四位数e, 此处s和e都是大于1000的质数,现在要找一个最短的路径把s变为 ...

  6. java新随笔

    1.纯随机数发生器 Xn+1=(aXn + c)mod m Modulus=231-1=int.MaxValue Multiplier=75=16807 C=0 当显示过2^31-2个数之后,才可能重 ...

  7. day33 线程的创建 验证线程之间共享数据 守护线程 线程进程效率对比 锁 死锁 递归锁

    今日内容: 1.线程理论 2.锁: 牺牲了效率,保证了数据的安全(重点) 3.守护线程 4.GIL锁:(重点) 5.计算密集型和IO密集型 6.信号量,事件(了解) 7.补充. 子进程中不能input ...

  8. caffe的一些概念理解

    有一天,师姐问我,epoch和iteration有什么区别?我一时语塞,竟然遍寻百度而不得,最后在stackoverflow上找到一个我认为比较靠谱的答案,虽然它不是最高票,但是是最好理解的,深得我心 ...

  9. ES6-循环

    forEach 方法来遍历数组,不能使用break语句中断循环,也不能使用return语句返回到外层函数 myArray.forEach(function (value) { console.log( ...

  10. 上传本地代码到GitHub上

    由于经常忘记Git的相关代码,百度多了自然不耐烦,干脆自己写个简单的博客记录一下代码及流程了...... 1.在GitHub上新建一个仓库: 2.创建完后在仓库左上角的ssh上copy一下地址: 3. ...