#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. 输出链表的倒数第K个值

    题目描述 输入一个链表,输出该链表中倒数第k个结点.   思路一:链表不能向前遍历,只能向后遍历.因此倒数第K个结点就是 正序的  :len(链表)-1-K的下一个.  注意,此处的思路与代码中具体实 ...

  2. 启动项目时出现java.io.EOFException异常。

    错误: 2018-4-18 10:55:54 org.apache.catalina.session.StandardManager doLoad 严重: IOException while load ...

  3. mybatis实战教程

    参考:http://blog.csdn.net/techbirds_bao/article/details/9233599/

  4. [HDU4585]Shaolin

    Problem 问你一个数的前驱和后继 Solution Treap模板题 Notice 注意输出那个人的编号 Code #include<cmath> #include<cstdi ...

  5. nginx:负载均衡实战(二) keepalived入门

    1.keepalived介绍 顾名思义,keepalived就是保持网络在线的,用来保证集群高可用HA的服务软件.主要防止出现单点故障(坏了一个点导致整个系统架构不可用) 2.详解keepalived ...

  6. Springboot+MyBatis+mysql+jsp页面跳转详细示例

           SpringBoot与MyBatis搭建环境,底层数据库为mysql,页面使用JSP(官网上不推荐使用jsp),完成从数据库中查询出数据,在jsp页面中显示,并且实现页面的跳转功能. 项 ...

  7. c# async/await异步编程死锁的问题

    在异步编程中,如果稍有不注意,就会造成死锁问题.何为死锁:即两个以上的线程同时争夺被互相锁住的资源,两个都不放手. 在UI或asp.net中,容易造成死锁的代码如下所示: private void b ...

  8. 某些material英文翻译

    chrome  铬,铬合金, 镀铬 matte  无光泽的,不光滑的 Decal   陶瓷的 duo color  双色 livery  (这个没找到什么吊意思,我看像是一个类似打logo的材质)

  9. 什么是Java优先级队列(Priority Queue)?

    PriorityQueue是一个基于优先级堆的无界队列.它的元素是按照自然顺序排序的.在创建元素的时候,我们给它一个一个负责排序的比较器.PriorityQueue不允许null值,因为 它们没有自然 ...

  10. win 10 初始环境变量

    有时用户会修改Win10系统的环境变量,改到后面原来是什么的也记不得了,想要改回去还要去别的电脑查看,这里转载下Win10 64位环境变量的默认初始值. 附:打开环境变量方法:电脑左下右键——系统—— ...