#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. 【Java算法】获得一个随机字符串

    package suanfa; import java.util.Random; public class RandomStr { public static String getRandomStr( ...

  2. pycharm开发工具,使用

    在pycharm中,打的断点,仅在调试模式下,即debug 模式下,才有效 Use Alt + Shift + C to quickly review your recent changes to t ...

  3. Win10系列:JavaScript 动画1

    在应用程序中使用动画会使应用显得更加生动,进而给用户带来良好的视觉效果.例如,当用户将某个项添加到列表时,新项不会立即出现在列表中,而是采用动画形式到达相应位置,并且列表中的其他项也采用动画形式移动到 ...

  4. 基于 Dropbear & Zlib 搭建轻量级的ssh server

    [目的] 移植dropbear & zlib 在AM335X开发板上搭建轻量级的ssh server [环境] 1.  Ubuntu 16.04发行版 2.  MC183平台 3.  交叉编译 ...

  5. selenium登录界面,创建表单并填写提交

    #! python3 # -*- coding:utf8 -*- # https://selenium-python.readthedocs.io/api.html#selenium.webdrive ...

  6. Cracking The Coding Interview 5.5

    #include <iostream> #include <vector> using namespace std; int getNum1(int N) { int num= ...

  7. Cracking The Coding Interview 4.1

    //Implement a function to check if a tree is balanced. For the purposes of this question, a balanced ...

  8. Sass 混合宏、继承、占位符 详解

    混合宏-声明混合宏如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无 ...

  9. SpringMVC学习二

    处理请求 今天学了三种请求,一种是 PathVariable ,一种是 RequestParam ,还有一种是CookieValue,并实现简单rest增删改查 上代码 package com.spr ...

  10. L300 3月英语课下

    重音 句中的实词(内容词)要被重读,读得重.长一点.句中的虚词(功能词)要被轻读或弱读,读得轻.短一点口语交流中,当虚词的在句中起到重要的表意作用时,会被重读. 连读 连读:把一个单词的尾音同下一个单 ...