给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

简介: 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

方法一:

#include<iostream>
using namespace std;

int main()
{
  int n;
  cin>>n;
  int a[200];
  for(int i = 0; i < n; i++)
  {
    cin>>a[i];
    
  }
  
  //冒泡排序
  int temp, flag = 1;
  //flag是冒泡过程是否存在交换的标志
  int j = n - 1;
  /*n是元素的个数,j是冒泡排序比较的次数
  第一次冒泡比较的次数n-1,以后每次递减1
  */
  while(flag)
  {
    flag = 0;//每次冒泡前,标志位清0
    for(int i = 1; i <= j; i++)
    {
      if(a[i-1]>a[i])
      {
        temp = a[i-1];
        a[i-1] = a[i];
        a[i] = temp;
        flag = 1;
      }
    }
    j--;
  }
  for(int i = 0; i < n; i++)
  cout<<a[i]<<" ";
  return 0;
}

方法二:

利用sort函数,用于c++中给指定区间所有元素进行排序,默认为升序,也可以进行降序。

用法:sort(a, a+n, cmp);

a:数组的首地址。

a+n:数组的尾地址。

cmp:自定义函数调用(降序)

bool cmp(int a, int b)
{
  return a > b; 
}

代码如下:

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
  int n;
  cin>>n;
  int a[200];
  for(int i = 0; i < n; i++)
  {
    cin>>a[i];    
  }
  sort(a,a+n);
  for(int i = 0; i < n; i++)
  cout<<a[i]<<" ";
  return 0;
}
相关文章
|
1月前
|
算法
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
45 0
|
1月前
给定一个长度为n的数组,请将数组中元素按照奇偶性重新划分,所有奇数靠左边,所有偶数靠右边,然后分别对奇数、偶数部分进行排序
给定一个长度为n的数组,请将数组中元素按照奇偶性重新划分,所有奇数靠左边,所有偶数靠右边,然后分别对奇数、偶数部分进行排序
30 1
|
1月前
|
算法 C++
Acwing.51 数字排列(全排列)
Acwing.51 数字排列(全排列)
|
1月前
|
算法 测试技术 C#
二分查找|滑动窗口|前缀和|LeetCode209: 长度最小的子数组
二分查找|滑动窗口|前缀和|LeetCode209: 长度最小的子数组
|
1月前
|
人工智能 算法 BI
【前缀和】【分类讨论】【二分查找】2983:回文串重新排列查询
【前缀和】【分类讨论】【二分查找】2983:回文串重新排列查询
|
1月前
|
存储 编译器 C语言
Day2 排序子序列、倒置字符串
Day2 排序子序列、倒置字符串
32 0
|
11月前
|
机器学习/深度学习 搜索推荐
1237:求排列的逆序数 2020-12-27
1237:求排列的逆序数 2020-12-27
|
11月前
|
算法 C语言 C++
【前缀和】1588. 所有奇数长度子数组的和
【前缀和】1588. 所有奇数长度子数组的和
81 0
|
12月前
|
算法 安全 Swift
LeetCode - #60 排列序列
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
使用二分法解决旋转数组的最小数字的问题
使用二分法解决旋转数组的最小数字的问题
74 0
使用二分法解决旋转数组的最小数字的问题