sort函数对数组和字符串的排序

(一)为什么要用c++标准库里的排序函数
Sort()函数是c++一种排序方法之一,它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!
(二)c++标准库里的排序函数的使用方法
(1)sort函数包含在头文件为 #include”algorithm” 的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!
(2)Sort函数有三个参数:
1.第一个是要排序的数组的起始地址。
2.第二个是结束的地址(最后一位要排序的地址)。
3.第三个参数是排序的方法,可以是从小到大也可是从大到小,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
sort函数使用模板:
sort(start,end,排序方法)
下面就具体使用sort函数结合对数组里的十个数进行排序做一个说明!
例一:sort函数没有第三个参数,实现的是从小到大

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int arr[10] = { 8,5,7,3,9,2,1,0,6,4 };
    cout << "排序前顺序: ";
    for (int i = 0;i < 10;i++)
    {
        cout << arr[i] << " ";    //输出排序前顺序
    }
    cout << endl;
    sort(arr, arr + 10);
    cout << "排序后顺序: ";
    for (int i = 0;i < 10;i++)
    {
        cout << arr[i] << " ";   //输出排序后顺序
    }
    cout << endl;
    return 0;
}

输出结果:
这里写图片描述

例二:设置第三个参数,实现从大到小的排序
通过上面的例子,会产生疑问:要实现从大到小的排序怎么办?这就如前文所说需要在sort函数里的第三个参数里做文章了,告诉程序我要从大到小排序!需要加入一个比较函数compare,此函数的实现过程是这样的。

bool compare(int a, int b)      //定义排序规则
{
    return a > b;               //从大到小排序
}

这就是告诉程序要实现从大到小的排序的方法!

#include <iostream>
#include <algorithm>
using namespace std;
bool compare(int a, int b)        //定义排序规则
{
    return a > b;                 //从大到小排序
}
int main()
{
    int arr[10] = { 8,5,7,3,9,2,1,0,6,4 };
    cout << "排序前顺序: ";
    for (int i = 0;i < 10;i++)
    {
        cout << arr[i] << " ";    //输出排序前顺序
    }
    cout << endl;
    sort(arr, arr + 10,compare);
    cout << "排序后顺序: ";
    for (int i = 0;i < 10;i++)
    {
        cout << arr[i] << " ";    //输出排序后顺序
    }
    cout << endl;
    return 0;
}

输出结果:
这里写图片描述

例三:利用sort函数对字符串从小到大排序

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    char str[10] ="adebchgfi";
    cout << "排序前顺序: ";
    for (int i = 0;i < 9;i++)
    {
        cout << str[i];     //输出排序前顺序
    }
    cout << endl;   
    sort(str, str+ 9);
    cout << "排序后顺序: ";
    for (int i = 0;i < 9;i++)
    {
        cout << str[i];     //输出排序后顺序
    }
    cout << endl;
    return 0;
}

输出结果:
这里写图片描述
例四:利用sort函数对字符串从大到小排序

#include <iostream>
#include <algorithm>
using namespace std;
bool compare(char a, char b)               //添加排序规则
{ 
    return a > b;
}
int main()
{
    char str[10] ="adebchgfi";
    cout << "排序前顺序: ";
    for (int i = 0;i < 9;i++)
    {
        cout << str[i];            //输出排序前顺序
    } 
    cout << endl;   
    sort(str, str+ 9,compare);       //调用排序规则
cout << "排序后顺序: ";
    for (int i = 0;i < 9;i++)
    {
        cout << str[i];            //输出排序后顺序
    }
    cout << endl;
    return 0;
}

输出结果:
这里写图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中对字符串排序的方法有多种。其中一种方法是将字符串转换成数组,对数组进行排序,然后再将排序后的数组转换回字符串。可以使用list()函数字符串转换成数组,然后使用sort()方法对数组进行排序,最后使用join()方法将排序后的数组转换回字符串。以下是示例代码: ```python s = "HelloWorld!" l = list(s) l.sort() s = "".join(l) print(s) ``` 运行结果为:`!HWdellloor`。这种方法是通过转换成数组来进行排序的。 = i new = sorted(alpha, key=lambda x: x.upper()) for key, value in other.items(): new.insert(key, value) print(''.join(new)) except: break ``` 这种方法可以处理多行输入,并对每一行的字符串进行排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python字符串排序的两种方法详解](https://blog.csdn.net/zhao2chen3/article/details/117150768)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [python:字符串排序](https://blog.csdn.net/kk_gods/article/details/116661851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值