当待排序序列中含有相同元素时,如果排序算法完成排序的同时,能保证相同元素的相对位置不发生改变,我们可以说这个排序算法是稳定的,或者说该排序算法是一个稳定排序算法。举个例子,假设待排序...
本节您将系统学习桶排序算法,还会看到实现桶排序算法的c、java以及python程序。桶排序算法的核心思想是:将待排序序列中的元素根据规则分组,每一组采用快排、插入排序等算法完成排序,然后再将所...
本节您将系统学习基数排序算法,还会看到实现基数排序算法的c、java以及python程序。阅读本文前,请您先学习计数排序算法,因为基数排序算法的实现会用到计数排序算法。 基数排序算法适用于对包含...
本节您将学习计数排序算法的工作原理,还会看到实现计数排序算法的c、java以及python程序。计数排序算法是一种通过统计待排序序列中各个不同元素的出现次数,从而实现对整个序列进行排序的算法。...
快速排序(简称“快排”)是一种基于分治思想实现的排序算法,它具有排序效率高、消耗资源少、容易实现等优点,是很多实际场景的首选排序算法。快速排序算法的基本原理 对于给定的待排序序列,快速排...
归并排序是一种基于分治思想的排序算法,时间复杂度为o(nlogn),效率仅次于快速排序算法。归并排序算法的基本原理 下面我们以对序列{7,5,2,4,1,6,3,0}进行升序排序为例,给您讲解归并排序算法的...
希尔排序又称缩小增量排序,是一种比插入排序更高效的排序算法,可以看做是插入排序算法的“改良版”。希尔排序算法的整个排序过程分为如下几步: 将待排序序列划分为多个子序列,对每个子序列使用...
选择排序是一种比较简单的排序算法,可以对待排序序列实现升序或降序排序,常用于数据量较少的场景。选择排序算法的实现原理和冒泡排序算法类似,通过不断地比较两个相邻元素的值,找出待排序序列...
插入排序是一种非常简单的排序算法,它可以对序列完成升序(由小到大)或降序(由大到小)排序。插入排序算法的核心思想是:始终维护一个有序的子序列,并不断将其它待排序的元素插入到这个有序序列...
冒泡排序又称起泡排序,是最容易实现的一种排序算法,时间复杂度为o(n2)。冒泡排序算法的工作原理是:反复遍历待排序的目标序列,过程中不断比较相邻元素的值,对于违背升序或降序规则的相邻元素,...