算法与数据结构之排序算法

【数据结构排序算法系列】数据结构八大排序算法 排序算法在计算机应用中随处可见,如Windows操作系统的文件管理中会自动对用户创建的文件按照一定的规则排序(这个规则用户可以自定义,默认按照文件名排序)因此熟练掌握各种排序算法是非常重要的,本博客将对数据结构中常见的八大排序算法进行详细的讲解。 写在前面的话:首先要明白在学习同类型的排序算法时,一定要明白任何相同领域存在的东西一定是竞争之后的结果,所以对于相同类型的排序之所以能够存在多种被人熟 阅读详情

 选择排序

package com.zy.base.class001;

import java.util.Arrays;

public class Code01_SelectionSort {
    public static void selectionSort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }

        for (int i = 0; i < arr.length - 1; i++) {
            // 最小值的位置在哪
            int minIndex = i;
            for (int j = i + 1; j < arr.length; j++) {
                minIndex = arr[j] < arr[minIndex] ? j : minIndex;
            }
            swap(arr, i, minIndex);
        }
    }

    private static void swap(int[] arr, int i, int minIndex) {
        int tmp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = tmp;
    }

    public static void main(String[] args) {
        int[] arr = {6, 3, 1, 7, 10, 5, 11};
        selectionSort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

冒泡排序:

package com.zy.base.class001;

import java.util.Arrays;

public class Code02_BubbleSort {
    public static void bubbleSort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }
        for (int i = arr.length - 1; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                if (arr[j] > arr[j + 1]) {
                    swap(arr, j, j + 1);
                }
            }
        }
    }

    private static void swap(int[] arr, int i, int minIndex) {
        int tmp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = tmp;
    }

    public static void main(String[] args) {
        int[] arr = {6, 3, 1, 7, 10, 5, 11};
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

 

数据结构中常见的排序算法 目录 稳定性 1.插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 稳定性 俩个相等的数据,经过排序后,排序算法能保证其相对位置不变。 1.插入排序 特点:数组短,排序效率高;数组相对有序,排序效率也高; 时间复杂度:O(N*2) 空间复杂度:O(1) 稳定 代码: public static void insertSort(int[] arr){ int bound=1; //[0 阅读详情

相关推荐

8卡H20运行DeepSeek-V3-0324性能和推理实测

最近在一台 8卡H20 机器上,先后部署了 DeepSeek-R1-AWQ (671B)和最新的 DeepSeek-V3-0324 (685B) ,测试了下性能和数学问题跑分。服务器由火山引擎提供。

weixin_53138109的博客 3365

数据结构中常见的几种排序算法

    数据结构中常见的几种排序算法 快速排序 目录 数据结构中常见的几种排序算法 快速排序 插入排序 希尔排序 归并排序 堆排序 选择排序 冒泡排序 基数排序 快速排序 基本思想: 基准分割法  a) 通过一趟排序将要排序的数据分割成独立的两部分其中一部分所有的数据要比另外的一部分数据都要小  b) 按照此方法对这两部分数据进行快速排序  案例:3 6...

qq_39380590的博客 1万+

绕过Google Play:获取Expo Go安卓APK的实用指南

本文为国内安卓开发者提供了绕过Google Play商店获取Expo Go APK的实用指南。针对无法访问Google Play的痛点,详细介绍了通过官方GitHub Releases、可信第三方网站(如APKMirror)及APK下载器等多种安全获取途径,并重点讲解了APK安装、安全验证(核对签名)及常见连接问题的排查方法,帮助开发者顺利开启React Native开发之旅。

weixin_29006701的博客 577

[数据结构与算法] 排序算法

终于学习到了算法部分, 在学习算法时, 我们还是应该回顾一下数据结构与算法之间的关系 数据结构是研究数据的组织方式, 是算法的基础 算法是解决编程问题的方法论, 是程序的灵魂 程序= 数据结构+算法 排序算法 排序也称排序算法(Sort algorithm). 是指 将一组数据按照指定顺序进行排列的过程 主要分为内部排序和外部排序 内部排序: 指将需要处理的数据加载到内存中进行排序 外部排序...

时间静止 6856

深度解析中国支付清算体系

说起国之重器,不仅仅有 东风快递、渔16、渔17、渔18,还有另外一个国之重器-CNAPS2(中国支付清算体系)。 中国国内支付行业的发达水平、繁荣程度,不客气的讲,在全世界都是数一数二的,世界上最大的银行卡组织银联在中国,世界上交易量最大的网络零售支付清算体网联在中国。可以说现在我国经济的高速发展,离不开CNAPS2。

银行信息系统应用架构详解 2510

解决k8s核心组件calico pod资源不创建问题

解决k8s核心组件calico pod资源不创建问题 1.问题描述 由于K8S集群Master节点故障,导致calico网络组件虽然处于Running状态,但是一直无法准备就绪,如下图所示 calico-node-lpt7h运行在master节点,第一时间紧急处理方法就是将其pod删除,让K8S自动重建该pod,使整个集群快速恢复 但是就当我将calico-node-lpt7h pod删除后,该pod始终无法自建,就好像是从来没有这个pod似的 2.解决方法 期初排查时,我觉得可能是由于当前master

江晓龙的博客 4807

数据结构及排序算法

线性结构、数组、矩阵、广义表、树与二叉树、图、查找算法、哈希表、排序算法等

兀行者的博客 1710

探索gtwr of mgtwr in python

代码】探索gtwr of GWmodel in python。

m0_46268055的博客 3388

数据结构和常用排序算法复杂度

数据结构和常用排序算法复杂度

拉依达不拉跨的博客 1万+

【CASS精品教程】035:南方CASS7.1台阶画法案例大全

摘要:本文详细介绍了南方CASS7.1软件中5种台阶工具的使用方法,包括普通台阶、有边台阶、L型台阶、U型台阶和不规则台阶。重点说明各类台阶的绘制步骤和注意事项,如绘制方向(从右下角逆时针连接4个点)、台阶方向标识(白色边为下边)、台阶数自动生成不可更改等特性。同时指出高版本CASS可能存在操作差异,并配以多张示意图直观展示各类台阶的绘制过程和效果,为使用CASS7.1绘制建筑台阶提供了实用指导。(148字)

智慧空间实验室 2921

把浮点数这件小事讲清楚:ABAP 7.51 里 Open SQL 与 ABAP CDS 的 FLTP 新玩法与避坑指南

ABAP浮点数计算的风险与应对 摘要:ABAP项目中的浮点数(FLTP)在跨平台计算时存在误差风险,同一逻辑在不同数据库平台可能产生细微差异。ABAP 7.51新增了两项关键能力:1)Open SQL和ABAP CDS中可为AVG函数指定结果类型,避免默认返回FLTP;2)ABAP CDS提供FLTP_TO_DEC转换函数。但需注意这些转换仍可能存在平台相关差异,且FLTP_TO_DEC会截断而非四舍五入小数位。开发者在涉及金额、数量等关键业务计算时,应明确数值语义并设计容错机制。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 214

数据结构排序算法

直接插入排序(Insertion Sort)是一种简单的排序算法,其主要思想是把待排序的元素插入到已经排好序的部分中,从而得到一个新的有序序列。直接插入排序的时间复杂度为,其中 n 表示数组的长度。当数组已经有序时,时间复杂度为 O(n)。关于比较次数,最坏情况下,即待排序的序列为逆序时,直接插入排序的比较次数最多。具体来说,对于长度为 n 的数组,最坏情况下的比较次数为 ,即大约为。在最好情况下,即待排序的序列已经有序时,直接插入排序的比较次数仅为 n-1。

qq_61726001的博客 1556

4-都2026年了,嵌入式发展前景怎么样,还适合入行吗?

本文系统分析了嵌入式行业的发展前景,指出到2026年嵌入式将迎来由"万物智联"驱动的黄金周期。文章回顾了嵌入式技术的四个演进阶段,从专用计算机到AIoT时代,强调其技术积累的延续性。作者从人才流向、产业智能化转型、高校新增专业等角度论证嵌入式行业的蓬勃发展,并提出"铁三角"模型分析其驱动力和护城河。最后给出职业发展路径建议,认为嵌入式适合长期主义者,在智能汽车、边缘计算等领域有广阔前景。文章建议读者抓住产业升级机遇,选择这一稳定且有复利效应的技术赛道。

指尖动听知识库 389

数据结构 —— 排序算法(总结)

以从小到大排序为例,比它小的都“扔”到它的左边,比它大的都“扔”到它的右边,然后左右两边再分别重复这个操作,不停地分,直至分到每一个分区的基准数的左边或者右边都只剩一个数为止。希尔排序的思想特别像在插入排序基础上得到了改进,希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。我们先根据序列的个位数的数字来进行分类,将其分到指定的桶中。

cixinyi的博客 1226

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数据结构之美:如何优化搜索和排序算法

数据结构和算法是计算机科学的重要基础,对于编写高效的程序至关重要。通过优化搜索和排序算法,我们可以显著提高算法的性能。然而,优化算法并不是一蹴而就的事情,需要不断学习和实践,以不断提高编程技能。在实际应用中,选择合适的数据结构和算法是至关重要的,不同的问题可能需要不同的算法来解决。因此,对于程序员来说,不仅要了解各种算法和数据结构,还要具备判断何时使用它们的能力。通过不断学习和实践,我们可以不断提高自己的编程水平,编写出高效、可维护的代码。😊🙏Java面试技巧。

学IT,找陈寒 9411

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【数据结构】排序算法全方位剖析

详细解析排序算法

2301_81169088的博客 1489

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

数据结构系列之十大排序算法

这些算法中后三个了解即可,快速和归并比较重要,前七个算法需要能准确的知道时间复杂度、空间复杂度、稳定性、原理。数据结构终于告一段落了,准备开始写操作系统的博客。

weixin_62188419的博客 1572

数据结构篇——五分钟带你记住常见排序算法口诀

一、前言 二、引言 1、概念 2、与生活相关

ac不知深的博客 5358

数据结构常用的排序算法详解

推荐阅读 数据结构常见的八大排序算法(详细整理)

天天向上 818

数据结构与排序算法

本文系统介绍了数据结构与排序算法的核心知识。数据结构部分阐述了线性结构(顺序表、链表)和非线性结构(树、图)的特点及存储方式,重点分析了顺序表的两种存储结构(一体式/分离式)及其扩容策略。排序算法部分详细讲解了冒泡排序、选择排序、插入排序和快速排序的实现原理,包括时间复杂度分析(最优/最坏情况)、空间复杂度及稳定性判断,并提供了Python代码实现示例。全文通过对比不同数据结构和算法的特性,为读者构建了系统的计算机基础知识框架。

bangbang两拳的博客 1182

算法之魂:深入剖析数据结构中的七大排序算法

在计算机科学领域,排序是一项基础但至关重要的操作。无论你是处理数据库查询结果还是优化搜索效率,了解不同的排序算法及其适用场景都至关重要。本文将介绍并简要分析数据结构中最常用的七种排序算法,以及它们的时间/空间复杂度和稳定性信息。

m0_73517383的博客 1423

排序算法可视化,数据结构可视化在线工具!超好用!

:::个人推荐。

2401_83981106的博客 1531

数据结构-十大排序算法

十大排序算法分别是直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、外部排序。其中插入排序包括直接插入排序、折半插入排序、希尔排序;交换排序包括冒泡排序、快速排序;选择排序包括简单选择排序、堆排序。

致大尽微 家国天下 4386

数据结构c版(3)——排序算法

数据结构中排序算法部分速览

2301_77272486的博客 1890

数据结构中的高级排序算法

希尔排序的时间复杂度,和选择的增量序列有密切的关联:若使用希尔本人提出的减半序列,时间复杂度通常会小于O(n2),但在最坏情况也会接近O(n2)希尔排序是一种原地排序算法,不需要占用额外内存空间。空间复杂度是O(1)希尔排序显然不是一种稳定的排序算法,因为它先分组再插入排序的方式,使得相同元素可能会由于分组不同改变位置。很明显这不是稳定的排序算法。

m0_57685225的博客 2523
上一篇: 刷题篇一:单调栈和窗口及其更新结构
下一篇: 算法基础二之二分法与异或运算
给自己加加油
博客等级 码龄8年 302粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值