首页 / 知识
Java数据结构,常见排序详解
2023-04-11 16:19:00

一、排序的概念和分类
1.排序的基本概念
排序是将一批无序的记录(数据)重新排列成按关键字有序的记录序列的过程。
排序分为内部排序和外部排序
若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。
反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。
内部排序的过程是一个逐步扩大记录的有序序列长度的过程
2.排序的稳定性
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。
总结起来就是,如果一个数据在排序过程中发生了跳跃行为,则为不稳定的排序;反之,则是稳定的排序。
时间复杂度:一个算法执行所耗费的时间
空间复杂度:运行完一个程序所需的内存大小。
二、常见排序
1.直接插入排序
直接插入排序的基本操作是讲一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。
代码:
public static void insertSort(int[] array) {
for (int i = 1; i < array.length; i++) {
int tmp = array[i];
int j = i-1;
for (; j >= 0 ; j--) {
if(array[j] > tmp) {
array[j+1] = array[j];
}else {
break;
}
}
//j回退到了小于0的地方
array[j+1] = tmp;
}
}
|
最新内容
相关内容
Python的字典排序
Python的字典排序,代码,数据,培训,字典,函数,表达式,内容,列表,排列,问题,字典是Python语言中的一种数据结构,每一个字典元素是由一对key-valupython的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython的经典题目
Python的经典题目,数字,数据,公司,培训,星期六,星期,字母,水仙花,次方,偶数,1、水仙花数用python打印出100-999所有的水仙花数,所谓水仙花数是python调试的几种方式
python调试的几种方式,代码,位置,信息,状态,培训,数据,分析,变量,函数,方式,python作为一种脚本语言,很多时候我们习惯于它的简洁,习惯于它的修为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规python的应用领域
python的应用领域,数据,分析,网络,工作,代码,人工智能,项目,金融,量化交易,业务,应用领域1:人工智能Python语言是目前公认学习人工智能的基础用Python开发一个简单的猜数字游戏
用Python开发一个简单的猜数字游戏,数字,代码,培训,官网,设备,程序,玩家,注释,内容,游戏,本文介绍如何使用Python制作一个简单的猜数字游戏。Python之关于高效使用字典的清单
Python之关于高效使用字典的清单,代码,数据,字典,培训,扩大,时报,方式,方法,对象,列表,字典(dict)对象是Python最常用的数据结构,社区曾有人开Python与c#的区别
Python与c#的区别,代码,平台,名称,培训,系统,设计,技术,标准,脚本,变量,现在来看下c#。它们的技术差异很大,但都适用于web开发。Python对c#的Python的英语搭配助手应用开发研究
Python的英语搭配助手应用开发研究,信息,设计,网站,在线,代码,环境,数据,分析,时间,培训,基于Python自带的GUI工具包Tkinter来实现窗口视窗设python的十个第三方库
python的十个第三方库,数据,网络,服务,时间,代码,管理,标准,实时,分析,等级,1.BeautifulSoupBeautifulSoup是一个可以从HTML,XML进行提取文件用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最