#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;const int N=1e6+10;int q[N]= {0},temp[N]={0};void merge_sort ...
分类:
编程语言 时间:
2020-06-13 12:48:12
阅读次数:
52
动态数组: int[] arr = new int[5]; ->声明了一个能放5个int类型的数组 arr[0] = 1; arr[1] = 2; arr[0] = 41; arr[1] = 8; arr[0] = 11; 动态数组:在初始化的时候元素空间分配 和 赋值,分别执行 静态数组: int ...
分类:
编程语言 时间:
2020-06-13 09:14:08
阅读次数:
60
// 插入排序 const insertSort =(arr) => { //假设前面的元素有序,把后一个元素插入合适的位置 for (var i = 1;i<arr.length;i++){ var preIdx = i-1 var currentVal = arr[i] while(preIdx ...
分类:
编程语言 时间:
2020-06-11 19:48:53
阅读次数:
52
###归并排序 void merge_sort(int l,int r) { if (l == r) { return; } int mid = l + r >> 1; merge_sort(l, mid); merge_sort(mid + 1, r); int i = l, j = mid + ...
分类:
其他好文 时间:
2020-06-10 17:20:34
阅读次数:
48
归并排序 大佬的归并排序详解 void mergeSort(vector<int>&arr, int start, int end) { if (arr.empty()||start >= end) return; int mid = (end + start) / 2; mergeSort(arr ...
分类:
编程语言 时间:
2020-06-08 12:19:33
阅读次数:
62
我一开始看着这个题 简单的以为 本题是一个模拟外加排序 所以直接一手sort 然后喜提60分 所以我仔细研究了一下 发现每个人都只和前一个人比赛 所以排序变化仅在2人之间 所以明显归并排序的复杂度要快于快速排序 所以 可以将sort改成手写的归并排序 但是…… 我是个懒人 所以直接stable_so ...
分类:
其他好文 时间:
2020-06-06 21:22:07
阅读次数:
54
一、归并排序 Merge Sort 1.1、实现原理 如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 归并排序使用的就是分治思想。分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了 ...
分类:
编程语言 时间:
2020-06-05 19:34:32
阅读次数:
68
排序算法提多了,很多甚至连名字你都没听过,比如猴子排序、睡眠排序等。最常用的:冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、基数排序、桶排序。根据时间复杂度,我们分三类来学习,今天要讲的就是冒泡、插入、选择排序算法。排序算法时
分类:
编程语言 时间:
2020-06-05 00:58:45
阅读次数:
68
分而治之归并排序关注「码哥字节」设置星标,接收最新技术干货提升自我。本文完整源码详见Github:https://github.com/UniqueDong/algorithms.git前面我们学习了时间复杂度O(n2)的经典排序算法:冒泡排序、插入排序、选择排序,今天我们来学习时间复杂度为O(nlogn)的归并排序,这种排序思想也更加常用。归并排序和快速排序都用到了分治思想。作为一种典型的分而治
分类:
编程语言 时间:
2020-06-05 00:47:00
阅读次数:
65
本文完整源码详见Github:https://github.com/UniqueDong/algorithms.git前面我们学习了时间复杂度O(n2)的经典排序算法:冒泡排序、插入排序、选择排序,今天我们来学习时间复杂度为O(nlogn)的归并排序,这种排序思想也更加常用。归并排序和快速排序都用到了分治思想。作为一种典型的分而治
分类:
编程语言 时间:
2020-06-05 00:41:35
阅读次数:
70