常见的4种排序方法(冒泡排序、插入排序、归并排序、快速排序)

本文介绍了四种常见的排序算法:冒泡排序、插入排序、归并排序和快速排序,包括它们的基本原理、时间复杂度、空间复杂度以及稳定性,并在不同数据规模下给出了选择排序算法的建议。
摘要由CSDN通过智能技术生成
1. 什么是排序问题

排序是让一组无序数据变成有序的过程

衡量一个排序算法的优劣,我们主要会从以下 3 个角度进行分析:

  1. 时间复杂度,具体包括,最好时间复杂度、最坏时间复杂度以及平均时间复杂度。
  2. 空间复杂度,如果空间复杂度为 1,也叫作原地排序。
  3. 稳定性,排序的稳定性是指相等的数据对象,在排序之后,顺序是否能保证不变。
2. 常见的4种排序算法及其思想

接下来,开始详细地介绍一些常见的4种排序算法及其思想

2.1 冒泡排序

2.1.1冒泡排序的原理

从第一个数据开始,依次比较相邻元素的大小。如果前者大于后者,则进行交换操作,把大的元素往后交换。通过多轮迭代,直到没有交换操作为止。

在这里插入图片描述

2.1.2冒泡排序的性能

  1. 时间复杂度:最好时间复杂度是 O(n);最坏时间复杂度是 O(n*n);平均时间复杂度是 O(n *n)。
  2. 空间复杂度: O(1)
  3. 稳定性:稳定

代码如下:

public static void main(String[] args) {
   
	int[] arr = {
    1, 0, 3, 4, 5, -6, 7, 8, 9, 10 };
	System.out.println("原始数据: " + Arrays.toString(arr));
	for (int i = 1; i < arr.length; i++) {
   
		for (int j = 0; j < arr.length - i; j++) {
   
			if (arr[j] > arr[j + 1]) {
   
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			} 
		}
	}
	System.out.println("冒泡排序: " + Arrays.toString(arr));
}
2.2 插入排序

2.2.1 插入排序的原理

选取未排序的元素,插入到已排序区间的合适位置,直到未排序区间为空。 插入排序顾名思义,就是从左到右维护一个已经排好序的序列。直到所有的待排数据全都完成插入的动作。
在这里插入图片描述

2.2.2 插入排序的性能

  • 时间复杂度:最好时间复杂度是 O(n);最坏时间复杂度是 O(n*n);平均时间复杂度是 O(n *n)。
  • 空间复杂度: O(1)
  • 稳定性:稳定
    代码如下:
public static void main(String[] args) {
   
	int[] arr = {
    2, 3, 5, 1, 23, 6, 78, 34 };
	System.out.println("原始数据: " + Arrays.toString(arr));
	for (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值