10.29数算小复习(选择题细节,二路归并,结构体排序)

排序、复杂度、细节(选择题,判断题)

对于一个已经排好序的序列,直接插入排序的复杂度是O(n),而归并排序的复杂度是O(nlogn)。这时候归并排序就不比直接插入排序速度快了。
归并排序的最好、最坏、平均时间都是O(nlogn),但是简单排序有些情况下是O(n).

仅基于比较的算法能得到的最好的“最坏时间复杂度”是O(NlogN)。

T

 

二路归并操作的功能是:

A.将两个有序表合并为一个新的有序表

排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置的方法称为:

A.插入排序

插入排序没有使用额外空间,归并排序使用了额外的辅助空间

标记

下列排序方法中,若将顺序存储更换为链式存储,则算法的时间效率会降低的是:D.仅4、5

1.插入排序;2.选择排序;3.冒泡排序;4.希尔排序;5.堆排序

下列排序算法中,▁▁▁▁▁ 是不稳定的。

A.简单选择排序

B.直接插入排序

C.归并排序

D.基数排序

 每次都是从左到右进行,从低位到高位依次比较

 

二路归并

void merage(int l,int mid,int r) {
    int temp[110];
    int i=l,j=mid+1,k=l;
    while(i!=mid+1&&j!=r+1){//这里终止条件就写左右指针终点的后一个,表示走完了
        if(arr[i]>=arr[j]){//因为走到终点时也要执行操作
            temp[k++]=arr[j++];
        }else{
            temp[k++]=arr[i++];
        }
    }
    while(i!=mid+1){
        temp[k++]=arr[i++];
    }
      while(j!=r+1){
        temp[k++]=arr[j++];
    }
    for(int m=l;m<=r;m++){
        arr[m]=temp[m];
    }
}

 

在while条件里cin>>n,可以实现

结构体排序,多指标

 

先依据ch降序,再依据math降序,最后看id的升序

  sort(stu+1, stu + n+1, cmp);

排序调用,直接数组名+需要排序部分的下标起始与终点,左闭右开 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值