zoukankan      html  css  js  c++  java
  • C++数组排序

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<windows.h>
     4 
     5 #define SIZE 5 //数组中元素的数量
     6 
     7 void swap(int *p1, int *p2)  //交换数组中的两个元素
     8 {
     9     int temp = *p1;  //创建变量储存元素p1的指针
    10     *p1 = *p2;  //将元素p1的指针改为元素p2的指针
    11     *p2 = temp;  //将元素p2的指针改为之前存储的元素p1的指针
    12 }
    13 
    14 int main()  //程序从这里开始运行
    15 {
    16     int array[SIZE];  //创建一个数组
    17     printf("未排序数组:
    
    ");
    18     for (int i = 0; i < SIZE; i++)  //遍历数组中所有元素
    19     {
    20         array[i] = rand();  //数组中每个元素赋值为一个随机数
    21         printf("%d
    ", array[i]);  //输出还未排序的数组中所有元素
    22     }
    23     printf("
    
    按下任意键开始排序");
    24     getchar();  //等待用户响应
    25     system("cls");  //清除所有输出结果
    26 
    27     int l = -1, u = SIZE - 1;  //定义我们需要寻找最值并排序的初始区间[0,SIZE]为全集
    28     for (l++; l < u; u--)//遍历已排序区间[0,l]∪[u,SIZE]的补集(即遍历未排序区间) 
    29     {//当l >= u时,区间(l,u)为空集,跳出循环 
    30         int max = 0, min = 0;  //创建用于存储最大值下标和最小值下标的变量
    31         for (int i = 0; i <= u; i++)  //遍历数组在未排序区间中的所有元素
    32         {
    33             min = array[min]>array[i] ? i : min;  //寻找数组在未排序区间中最小值的下标
    34             max = array[max]<array[i] ? i : max;  //寻找数组在未排序区间中最大值的下标
    35         }
    36         swap(&array[l], &array[min]);  //交换数组在未排序区间中的最小值与数组在未排序区间左端点的值
    37         swap(&array[u], &array[max]);  //交换数组在未排序区间中的最大值与数组在未排序区间右端点的值
    38         printf("数组正在排序:
    
    ");
    39         for (int i = 0; i < SIZE; i++)
    40         {
    41             printf("%d
    ", array[i]);
    42         }
    43         system("cls");  //清除所有输出结果
    44     }
    45     printf("排序后数组:
    
    ");
    46     for (int i = 0; i < SIZE; i++)  //遍历排序完后数组中所有元素
    47     {
    48         printf("%d
    ", array[i]);  //输出排序后的数组中所有元素
    49     }
    50     getchar();  //等待用户响应(防止程序自动退出)
    51     return 0;
    52 }
  • 相关阅读:
    Spring Boot
    java 解析命令行参数
    idea 打包java程序
    Dynomite 安装配置
    python 装饰器
    IntelliJ IDEA教程
    ubuntu14.04 rabbitmq安装与使用 --修改RabbitMQ数据存储位置
    ribbbitMq 教程,详细
    spring 的 切片Aspect 最常用记录方法执行时间
    Spring-data-jpa 常用的时间注解
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/10544218.html
Copyright © 2011-2022 走看看