排序
排序
不太聪明的样子
这个作者很懒,什么都没留下…
展开
-
快速排序模板(C语言)
代码模板:void swap(int* a, int* b){ int tmp = *a; *a = *b; *b = tmp;}//以中间点为pivotvoid quick_sort_mid(int* arr, int l, int r){ if(l >= r) return; int i = l - 1, j = r + 1, x = arr[l + r >> 1]; while(i < j){ while原创 2020-12-25 12:22:57 · 253 阅读 · 0 评论 -
归并排序(C语言)
归并排序 归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用。归并排序的最优时间复杂度、平均时间复杂度和最坏时间复杂度均为O(nlogn),空间复杂度为O(n)。归并排序分为三个步骤:1.将数列划分为两部分2.递归地分别对两个子序列进行归并排序3.合并两个子序列将已有的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有。其本质是由小规模有序到大规模有序的自底向上的过程。核心算法是两个有序序列的排序,即使用双指针对两个数组进行扫描,以线原创 2020-12-18 19:05:58 · 382 阅读 · 0 评论 -
基数排序(C语言)
基数排序基数排序(Radix sort)是一种非比较型的排序算法,最早用于解决卡片排序的问题。它的工作原理是将待排序的元素拆分为k个关键字,其中k为最大值的位数,从低位开始进行稳定排序。(注意:数列中的元素都是非负整数)基数排序是一种稳定的排序算法。代码实现:#include <stdio.h>#include <string.h>#include <stdlib.h>typedef unsigned long long ULL;//数据预处理,保证原创 2020-12-12 20:11:47 · 1789 阅读 · 0 评论