首页 > 其他分享 >12.22 归并排序

12.22 归并排序

时间:2024-12-22 16:42:14浏览次数:9  
标签:mergesort 归并 12.22 ++ mid int cnt 排序 TODO

include

using namespace std;
const int MAXN = 10;
int n, a[MAXN], b[MAXN];
void mergesort(int *a, int l, int r) {
int i, j, mid, cnt;
if (l == r) {
return;//TODO
}
mid = (l + r) / 2;
mergesort(a, l, mid);
mergesort(a; mid + 1; r)
i = l, j = mid + 1, cnt = 0;
while (i <= mid && j <= r) {
if(a[i]<=a[j])
b[++cnt]=a[i++];//TODO
else
b[++cnt]=a[j++];//TODO
}
while(i<=mid){
b[++cnt]=a[i++];//TODO
}
while(j<=r){
b[++cnt]=a[j++];//TODO
}
for(int i=l;i<=r;i++){
a[i]=b[i-l+1]//TODO
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];//TODO
}
mergesort(a,1,n);
for(int i=1;i<=n;i++){
cout<<a[i]<<(i==n?'\n':' ');
}
}

标签:mergesort,归并,12.22,++,mid,int,cnt,排序,TODO
From: https://www.cnblogs.com/SIPnnnnn/p/18622246

相关文章

  • 希尔排序(n/3+1)
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<ctype.h>#include<time.h>#defineMAX_LENGTH100 voidShellSort(intarr[],intn){   intgap=......
  • 排序链表(归并排序)
    给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例1:输入:head=[4,2,1,3]输出:[1,2,3,4]示例2:输入:head=[-1,5,3,4,0]输出:[-1,0,3,4,5]示例3:输入:head=[]输出:[] 方法一:归并排序/***Definitionforsingly-linkedlist.*s......
  • 各大排序总结
    因为学了冒泡后就会用sort了,完全没有学过各种排序,第一次面试因为不会手写快排GG,痛定思痛,决定认真写篇学习博客QAQ冒泡排序时间复杂度$O(n^2)$,空间复杂度$O(1)$,不断swap把大的排到后面,咕噜咕噜冒泡泡voidBubbleSort(int*a,intlen){for(inti=1;i<len;++i){......
  • 【唐叔学算法】第18天:解密选择排序的双重魅力-直接选择排序与堆排序的Java实现及性能
    引言在数据排序的世界里,选择排序是一类简单而直观的算法,它通过不断选取未排序部分中的最小(或最大)元素来逐步构建有序序列。今天,我们将深入探讨两种基于选择思想的排序方法——直接选择排序和堆排序,并提供它们的Java实现代码。此外,我们还会分析这两种排序算法的时间复杂度和......
  • lambda排序小记
    一、按照几个字段分别排序:Student:packagecom.model;importlombok.AllArgsConstructor;importlombok.Getter;importlombok.Setter;importlombok.ToString;@Getter@Setter@ToString@AllArgsConstructorpublicclassStudent{privateStringname;priv......
  • 78.一维数组和二维数组的排序实现
    因为碰到了一些题目故此来做总结一维数组最常用的冒泡排序:#include<stdio.h>voidsort(intarr[],intn){//外层循环for(inti=0;i<n-1;++i){intflag=1;//假设flag=1就是已经排序好的//内层循环for(intj=0;j<n-1-i;......
  • pta 7-363 sdut-C语言实验-简单字符串排序
    题解:#include<iostream>#include<string>usingnamespacestd;//定义学生结构体structstudent{stringname;intscore;};//快速排序实现单词字典序排序voidQuickSort(studentstu[],intleft,intright){if(left>=right)return;inti=left,j=r......
  • 用Python让两组数据纵向排序
    一、引言在数据处理和分析中,排序是一项非常基础且重要的操作。排序可以帮助我们更好地理解数据,发现数据中的模式和规律。在Python中,我们可以使用多种方法对数据进行排序。本文将详细介绍如何使用Python对两组数据进行纵向排序,即每一列分别进行排序,同时保持数据的对应关系。我们将......
  • 2545. 根据第 K 场考试的分数排序
    思路遍历列表,dict1记录每一行的数据,dict2记录k列数据以及对应的行对k列数据进行降序排序dict2根据排序后的dict2,依次获取对应行的数据时间复杂度:O(nlogN)代码classSolution:defsortTheStudents(self,score:List[List[int]],k:int)->List[List[int]]......
  • 2545. 根据第 K 场考试的分数排序
    班里有 m 位学生,共计划组织 n 场考试。给你一个下标从 0 开始、大小为 mxn 的整数矩阵 score ,其中每一行对应一位学生,而 score[i][j] 表示第 i 位学生在第 j 场考试取得的分数。矩阵 score 包含的整数 互不相同 。另给你一个整数 k 。请你按第 k ......