首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++数组值排序

在C++中,数组值排序可以通过使用标准库中的algorithm头文件中的sort()函数来实现。以下是一个简单的示例:

代码语言:cpp
复制
#include<iostream>
#include<algorithm>

int main() {
    int arr[] = {5, 3, 8, 1, 9};
    int n = sizeof(arr) / sizeof(arr[0]);

    std::sort(arr, arr + n);

    for (int i = 0; i < n; i++) {
        std::cout<< arr[i] << " ";
    }

    return 0;
}

在这个示例中,我们首先包含了algorithm头文件,然后定义了一个整数数组arr,并计算了数组的长度。接下来,我们使用sort()函数对数组进行排序,最后遍历数组并输出排序后的结果。

需要注意的是,sort()函数默认是按照升序排序,如果需要降序排序,可以使用greater<int>()作为第三个参数。

代码语言:cpp
复制
std::sort(arr, arr + n, std::greater<int>());

此外,如果需要自定义排序规则,可以通过传递第三个参数来实现。例如,按照绝对值大小排序:

代码语言:cpp
复制
#include<iostream>
#include<algorithm>
#include <cmath>

bool abs_compare(int a, int b) {
    return std::abs(a) < std::abs(b);
}

int main() {
    int arr[] = {-3, 2, -5, 1, 4};
    int n = sizeof(arr) / sizeof(arr[0]);

    std::sort(arr, arr + n, abs_compare);

    for (int i = 0; i < n; i++) {
        std::cout<< arr[i] << " ";
    }

    return 0;
}

在这个示例中,我们定义了一个自定义比较函数abs_compare,然后将其作为sort()函数的第三个参数传递。最后输出排序后的结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

查找排序数组的最小(js)

题目 在由小到大已排序的未知数组中,以某个元素为支点旋转(好比将序列沿着前后顺序围成环移动)得到了一个数组,请找出该数组的最小。...比如倘若原数组(对我们而言,并不知道原数组是什么)为0,1,2,3,4,5,6,7,可能经过旋转后得到数组 3,4,5,6,7,0,1,2。请找出旋转后数组的最小(假定数组中没有重复数字)。...从旋转点分开的两段数组都是有序的,而且前面数组都要大于后边子数组的元素,所以要找的旋转后数组的最小也就是两个有序数组的分界线。...所以有点像数学中的夹逼准则,有两个指针分别从数组开头和结尾想目的地不断逼近,直到缩小的范围成为一个点,则是目标值。...,arr[mid]不可能是最小 9 start=mid+1 10} 11else { 12 // 对于原本升序的数组,此时arr[mid]有可能是最小 13 end= mid 14

2.9K40

数组排序,实现升序和降序,输出最大最小

运行结果 循环运行结果去除最后一个, > <可以查看我的for循环去除去后一个符号这篇博文 从小到大排序输出:13.14 < 52.1 < 66.6 < 99.99 < 100.0 从大到小排序输出:100.0...> 99.99 > 66.6 > 52.1 > 13.14 最小是:13.14 最大是:100.0 定义数组 // 定义数组 double[] arr = {66.6, 52.1, 100, 99.99..., 13.14}; 排序 // 排序(默认的升序) Arrays.sort(arr); 升序 // 遍历输出(升序 小到大) System.out.print("从小到大排序输出:"); for (int...// 输出最小 下标为0的元素(第一个元素) System.out.println("最小是:" + arr[0]); 输出最大 // 输出最大 下标arr.length-1的元素(最后一个元素...的类 public class Work { // mian方法 程序入口 public static void main(String[] args) { // 定义数组

1.3K10

c++ sort 二维数组排序_二维数组升序排列

以往遇到行排列问题(按每行的字典序排序)的时候,总是使用结构体来进行排序,但是如何使用二维数组来达到同样的效果呢?...实验内容:利用二维数组进行“三级排序” 测试1:使用c++内置的普通型二维数组 #include #include using namespace std;...分析原因,应该是数组名a和一维数组名a[0]、a[1]均为const类型指针,排序时无法交换它们而导致错误。...测试3:利用STL中的vector容器进行排序 即利用vector>容器模拟二维数组进行排序 #include #include #...); for(auto p : vec) cout<<p[0]<<' '<<p[1]<<' '<<p[2]<<endl; return 0; } 看起来好像STL方便一些~ 总结:利用二维数组进行排序还是挺麻烦的

1.5K30

JavaScript 数组排序——快速排序

数组中的快速排序就是取原始数组中的一个元素最为基点,小于基点的放在一个数组中,大于基点的放在一个数组中,无限循环,知道将数组分解到长度(length<1)停止 var arr = [12, 3, 569...56, -56, -56, 1223, 11, 16, 13, 1]; function quickSort(arr) { if (arr.length < 1) return arr;分解数组..., 1);将寻找到的基点的元素进行保存 var left = [];创建新数组 var right = [];创建新数组 遍历寻找完基点的数组 for (var i =...0; i < arr.length; i++) { 利用寻找的基点进行划分 小于寻找到的基点放在一个数组中 大于寻找到的基点放在一个数组中 if (basic[0]...left.push(arr[i]); } else { right.push(arr[i]); } } 将分割完成的数据+寻找的基点进行组合,形成排序后的新数组

69630

精通Excel数组公式021:提取唯一列表并排序

使用辅助列:从单列中提取唯一列表 借助于辅助列来提取唯一比使用数组公式更容易。下图1展示用于从单元格区域B2:B9中提取唯一的赛道名的公式。 ?...图1 数组公式:从单列中提取唯一列表,使用SMALL函数 下图2展示了使用数组公式统计唯一数量。...图3 可以将上图2公式中IF函数的参数value_if_true的1替换为ROW(B2:B9)-ROW(B2)+1,从而得到上图3中的相对位置数组。...数组公式:使用动态单元格区域并从单列中提取唯一列表 如下图5所示,在公式中使用了定义的名称来统计唯一的个数。 ?...图8 使用辅助列或数组公式提取满足条件的唯一 如下图9所示,借助于辅助列提取公司ABC不重复的记录。 ? 图9 也可以使用数组公式,如下图10所示。 ?

4.7K10
领券