• 数据结构与算法(Java版) | 排序算法的介绍与分类


    各位朋友,现在我们即将要进入数据结构与算法(Java版)这一系列教程中的排序算法这一章节内容的学习中了,所以还请大家系好安全带,跟随我准备出发吧!

    在这里插入图片描述

    相信诸位应该都知道排序算法有很多种吧!就算没见过,你总该多多少少听说过那么一嘴吧!我就不信你在找工作面试时,没有碰到过一两道有关排序算法的面试题,要知道,目前很多公司都会给面试者出几道有关排序算法的笔试题,相信经常面试的人应该对此多有体会!

    因此,排序算法对于我们来说,那就是一个必须要非常熟练掌握的重要知识点了。当然,不得不说的是,有些排序算法理解起来还是很困难的,并不是像你想象中的那样洒洒水就能搞明白的,所以,这里我想提醒诸位,排序算法这一章节中的内容并不是那么容易就能学会的,不过,只要你加倍努力,认真学习,我相信问题都不大,嘻嘻😂!

    排序算法的基本介绍

    首先,我先给大家对排序算法作一个基本的介绍。

    排序也称排序算法(Sort Algorithm),指将一组数据,依照指定的顺序进行排列的一个过程。

    从上可以看到,有些人将排序算法简称为排序,那也就不足奇怪了。其实,准确地来说,排序它是一种算法,并不能无脑地说它就是数据结构中的一种。

    排序算法的分类

    排序算法可以分为两大类,它们分别是:

    1. 内部排序

    2. 外部排序

    关于排序算法的这两大分类,下面我给大家作一个简单的介绍。

    内部排序

    内部排序,听这个名字我想大家应该就知道它的意思了吧!何谓内部排序呢?内部排序就是指将需要处理的所有数据都加载到内部存储器(即内存)中进行排序。

    说得再通俗一点就是,我们得先将需要处理的所有数据都加载到内存中,然后再在内存中完成排序。

    外部排序

    当数据量过大,比如要对10亿个数据进行排序,无法全部加载到内存中时,我们才需要借助外部存储(例如文件、磁盘等)来进行排序。

    而这也就是说,我们可能会先加载一部分数据进行排序,排序完了过后呢,会再加载另外一部分数据进行排序,最后就是将结果进行合并了。

    小结

    那么,常见的排序算法有哪些呢?

    常见排序算法如下图所示,是不是你只须看一眼就什么都了然了啊!

    在这里插入图片描述

    从上图中可以看到,这里我们会重点讲解内部排序,之所以要给大家重点讲解内部排序,是因为大家在找工作面试时,面试官着重考察你的就是内部排序。

    当然,内部排序又分为下面几大类:

    • 插入排序;

      插入排序又可分为两类,如下:

      • 直接插入排序;
      • 希尔排序。
    • 选择排序;

      选择排序又可分为两类,如下:

      • 简单选择排序;
      • 堆排序。
    • 交换排序;

      交换排序又可分为两类,如下:

      • 冒泡排序;

        冒泡排序,想必大家最熟悉的就是它了,嘻嘻😂!

      • 快速排序。

    • 归并排序;

    • 基数排序。

      基数排序,又称“桶子法”,实际上它就是桶排序的一个扩展版(或者升级版),这里我不知道大家有没有听说过桶排序,如果没听说过的话,那也没什么关系,因为只要你学会了基数排序,那桶排序自然而然也就不在话下了。

    然而,对于一般程序员来讲,所谓的常见排序算法可能在他眼里就下面三种:

    • 直接插入排序;
    • 简单选择排序;
    • 冒泡排序。

    以上三种排序算法也是很多培训机构或者学校要求大家伙掌握的,只不过随着时代的发展与社会的极致内卷,现在企业对咱们程序员的要求也TM被卷得越来越高了,自然就不仅仅是掌握以上三种排序算法就能完事的了,下面这八种排序算法咱们也都得掌握得非常熟练才行。

    • 直接插入排序;
    • 希尔排序;
    • 简单选择排序;
    • 堆排序;
    • 冒泡排序;
    • 快速排序;
    • 归并排序;
    • 基数排序。

    温馨提示:以上这八种排序算法在我们这套系列教程里面,我都会给大家讲解到,而且讲解得会非常仔细,所以希望诸位认真学,争取努力熟练掌握它们。

    以上便是我对排序算法基本介绍与分类的一个说明。

  • 相关阅读:
    springboot + easyRules 搭建规则引擎服务
    杰理之增加自动mute处理节点【篇】
    【Java面试】请描述一下Redis中AOF 重写的过程
    Ubuntu扩容lvm空间
    琢磨下python装饰器的例子
    Hive面试题系列第二题-行转列问题
    高压放大器有哪些实际应用场景
    2023-油猴(Tampermonkey)脚本推荐
    react学习笔记1
    利用indexDB带你手把手构建一个前端数据库体系
  • 原文地址:https://blog.csdn.net/yerenyuan_pku/article/details/134215236