基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。
还有一种思路是找到较小的数两数交换,一次循环结束时,可能交换次数不止是一次,这种思路有点冒泡的感觉,并且其时间复杂度的系数较高。
常用的排序算法有很多种,每种都有其特定的应用场景和优缺点。以下是一些常见的排序算法:
在数组排序的场景中,for 循环和 forEach 的使用方式和效果有显著不同。实际上,forEach 并不适合用于实现数组排序,而 for 循环则可以用于实现...
基数排序(Radix Sort)是非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。它按照从低位到高位(或者从高位到低位)依次...
桶排序是分布式排序算法,将数据分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或以递归方式继续使用桶排序进行排序)。
计数排序(Counting Sort)的起源并不明确指向某一个特定的发明者或时间点,但它作为一种简单直观的排序算法,在计算机科学中得到了广泛的应用。计数排序的基...
堆排序(Heap Sort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者...
快速排序是由英国计算机科学家托尼·霍尔(Tony Hoare)在1960年提出的一种排序算法。它的基本思想是分治法(Divide and Conquer)的应用...
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将...
希尔排序(Shell Sort)是Donald Shell于1959年提出的一种基于插入排序的算法。它是对直接插入排序算法的一种更高效的改进版本,也称为“缩小增...
插入排序(Insertion Sort)的起源并不明确,但它是计算机科学中最早提出的排序算法之一。它的工作原理类似于我们日常整理扑克牌或书籍时的过程:我们创建一...
选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直...
冒泡排序(Bubble Sort)是一种简单的排序算法,其名字来源于越小的元素会经由交换慢慢“浮”到数列的顶端(或越大的元素“沉”到底端),就如同气泡从水底冒到...
排序算法是计算机科学中的基础问题,在大规模数据处理场景下,如何提高排序速度成为一个关键挑战。快速排序(QuickSort)因其平均时间复杂度为 O(nlogn)...
排序算法是数据结构的核心基础。本文通过选择排序、堆排序、冒泡排序的对比解析,帮助初学者掌握算法思想与实现细节。文末附算法对比总结表。