64-七大排序算法概述

目录

1.排序的概念

2.排序的稳定性

3.排序的应用

4.排序算法的分类

4.1.内部排序(七大排序)

4.1.1.插入排序

     ①插入排序

     ②希尔排序

4.1.2.选择排序

     ③选择排序

     ④堆排序

4.1.3.交换排序

     ⑤冒泡排序

     ⑥快速排序

4.1.4.归并排序

     ⑦归并排序

4.2.外部排序

4.2.1.桶排序(基于归并排序,多路归并)

4.2.2.计数排序

4.2.3.基数排序


1.排序的概念

排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减地排列起来的操作。

平时的上下文中,如果遇到排序,通常指的是排升序(非降序)。

通常意义上的排序,都是指原地排序(in place sort)。

2.排序的稳定性

待排序序列中若存在值相等的元素,经排序之后,排序算法能保证相等元素之间相对位置不变(相等元素之间原有的先后顺序保持不变),称该算法是具备稳定性的排序算法。

64-七大排序算法概述_第1张图片

现实意义:

商城系统要求按照订单金额排序。

订单默认都是按照下单时间来进行创建的,此时稳定的排序算法就非常重要。相同金额的订单仍然是按照时间先后来排序的。

3.排序的应用

各大商城的价格从低到高,中国大学排名......

4.排序算法的分类

4.1.内部排序(七大排序)

将数据都在内存中操作。基于比较的排序,直接把2个元素进行大小比较。

4.1.1.插入排序

     ①插入排序

     ②希尔排序

4.1.2.选择排序

     ③选择排序

     ④堆排序

4.1.3.交换排序

     ⑤冒泡排序

     ⑥快速排序

4.1.4.归并排序

     ⑦归并排序

4.2.外部排序

需要借助硬盘等辅助存储介质进行的排序操作。大数据排序,数据大到内存放不下。

4.2.1.桶排序(基于归并排序,多路归并)

4.2.2.计数排序

4.2.3.基数排序

所有的排序算法,一定要注意变量和区间的严格定义。

排序是一个工具,都用static静态方法。

 

你可能感兴趣的:(Java数据结构,排序算法,算法,数据结构)