北京邮电大学机试学习笔记(一)排序

    机试中算法时间复杂度不能超过百万级别,即不能超过一千万。假设算法的时间复杂度为O(n^2),则n的取值不应大于3000,否则将会达到千万数量级复杂度,超出用时限制。例如不能在1s内对10000个整数进行冒泡排序,否则时间复杂度将会达到O(n^2)即100000000,而应该采用快速排序(O(nlog n)40000。空间复杂度则考虑为n*数组长度。
    冒泡排序:

    输入:n = 4
              4 3 2 1
    调试结果:
    i = 0//要排N次
    j = 0; //大于j+1,交换3,4,2,1
    j = 1;//小于j+1, 3 2 4 1
    j = 2; //大于j+1;交换3,2,1 4
    j = 3,
    i = 1;
    j = 0;//2 3 1 4
    j = 1;//2 1 3 4
    j = 2;
    i = 2;
    j = 0;1 2 3 4
    j = 1;
    i = 3;
    j = 0;
    快速排序考虑sort库函数,用于C++中,对给定区间所有元素进行排序,头文件#include<algorithm>,包含三个参数,第一个是要排序数组的起始地址,第二个是结束地址,第三个是排序方法函数。默认从小到大,无第三个参数。若要从大到小排序,可添加一个比较函数CMP() 

C++中比较两个字符串,设分别为str1,str2
若str1 = str2, 返回0;
若str1 < str2, 则返回负数,字典序小者在前
若str1 > str2,则返回正数



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值