保函网

常见的几种排序算法总结

发布时间:2025-12-14 | 来源:互联网转载和整理

对于非科班生的我来说算法似乎对我来说是个难点,查阅了一些资料,趁此来了解一下几种排序算法。

首先了解一下,什么是程序

关于排序算法通常我们所说的往往指的是内部排序算法,即数据记录在内存中进行排序。

排序算法大体可分为两种:

一种是比较排序,时间复杂度O(nlogn)~O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。

另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等

冒泡排序它重复地走访过要排序的元素,一次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。

选择排序类似于冒泡排序,只不过选择排序是首先在未排序的序列中找到最小值(最大值),放到序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾,以此类推,直到所有元素均排序完毕。

插入排序比冒泡排序和选择排序更有效率,插入排序类似于生活中抓扑克牌来。

插入排序具体算法描述,以数组[3,2,4,5,1]为例。

前面三种排序算法只有教学价值,因为效率低,很少实际使用。归并排序(Mergesort)则是一种被广泛使用的排序方法。

它的基本思想是,将两个已经排序的数组合并,要比从头开始排序所有元素来得快。因此可以将数组拆开,分成n个只有一个元素的数组,然后不断地两两合并,直到全部排序完成。

以对数组[3,2,4,5,1]进行从小到大排序为例,步骤如下:

有了merge函数,就可以对任意数组排序了。基本方法是将数组不断地拆成两半,直到每一半只包含零个元素或一个元素为止,然后就用merge函数,将拆成两半的数组不断合并,直到合并成一整个排序完成的数组。

快速排序(quicksort)是公认最快的排序算法之一,有着广泛的应用。

快速排序算法步骤

参考:

常用排序算法总结(一)

阮一峰-算法总结

排序算法

上一篇:临沂师范(关于临沂师范的介绍)

下一篇:system是什么意思

其他文章

  • 大学休学一年要交学费吗
  • 百姓厨房是上市公司吗
  • 家具的英文
  • 遂昌千佛山景区在哪里(遂昌千佛山景区)
  • 先锋油汀取暖器开关使用方法
  • 洗车机洗车机(好的洗车机)
  • 热切什么意思
  • 泰山溶洞大峡谷位置
  • 安宁一中录取分数线2023
  • 王永章(关于王永章介绍)
  • 秋丛绕舍似陶家的秋丛是什么意思
  • 去痘面膜哪个牌子好
  • 关于教育的英语短文
  • 中国银行面试问题及答案技巧
  • 个人学习总结报告范文5篇
  • 家具尺寸是多少
  • 家无井而出溉汲翻译
  • 电磁炉天天炒菜费电吗
  • 适合中学生好听的歌曲_推荐给中学生听的歌
  • 张雪梅的介绍