首页 > 编程语言 >常见数组的排序算法的特点

常见数组的排序算法的特点

时间:2023-11-07 14:33:28浏览次数:39  
标签:复杂度 冒泡排序 算法 数组 排序 指针

假设这些排序算法想得到一个升序序列,长度为n。

参考

https://blog.csdn.net/qq_53414724/article/details/125016223
https://zhuanlan.zhihu.com/p/602971700

冒泡排序

冒泡排序从头开始寻找相邻的元素,找到较大的元素放于后面,一直到数组末尾。循环n-1轮,每一轮都从0开始,但结束位置越来越靠近起始位置,第一轮明确最大的元素,第二轮明确第二大的元素,...。代码中i、j指针总是挨着的,满足j=i+1。冒泡排序算法稳定,平均、最差时间复杂度都是O(n^2),最优时间复杂度为O(n),空间复杂度为O(1)。

简单选择排序

简单选择排序循环n轮,每一轮明确一个当前最小的元素、放置于数组最前侧。代码中i、j指针不是挨着的,i指针指向数组最前侧已找到的最小的若干值后一位,j指针从i开始向后遍历至数组末尾,如果碰到arr[j]<arr[i],则进行数值交换,因此每一轮中可能i、j指针指向的值交换多次。简单选择排序算法不稳定,平均、最好、最差时间复杂度都是O(n^2),空间复杂度为O(1)。

标签:复杂度,冒泡排序,算法,数组,排序,指针
From: https://www.cnblogs.com/Higgerw/p/17814917.html

相关文章

  • sql server 排序 row_number() over(order by ) as row /
    第一种排序方法:利用row_number()over(orderbycreatetimedesc)asrow参考来源:版权声明:本文为CSDN博主「云游的二狗」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/missingshirely/article/details/44037037语法如......
  • vue:通过数组循环创建表格,表格中有输入框需校验,最后需要一次性校验所有表格。
    表格内有form表单,form表单绑定的model数据类型必须为对象。所以需要先处理一下接口请求回来的数据。 表单需要校验,校验要用到ref,所以通过索引给每个表单生成自己专属的ref。 统一写一个校验规则,绑定至form表单中的rules中,随后在表格内的输入框form-item中绑定对应的规定。......
  • 文心一言 VS 讯飞星火 VS chatgpt (130)-- 算法导论11.2 2题
    二、用go语言,对于一个用链接法解决冲突的散列表,说明将关键字5,28,19,15,20,33,12,17,10插入到该表中的过程。设该表中有9个槽位,并设其散列函数为h(k)=kmod9。文心一言:在这个问题中,我们使用Go语言来解决一个散列(Hash)表的问题,该问题需要我们使用链接法解决冲突。我们的散......
  • 对称加密与非对称加密有什么区别?RSA和AES算法有什么区别?
    对称加密与非对称加密有什么区别?对称加密:指加密和解密使用同一密钥,优点是运算速度较快,缺点是如何安全将密钥传输给另一方。常见的对称加密算法有:DES、AES等。非对称加密:指的是加密和解密使用不同的密钥(即公钥和私钥)。公钥与私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私......
  • C语言 读取二进制文件中的数组
    获取最后n行数据把每个数组看成是1行#include<stdio.h>intmain(void){//示例数据成员大小最多20字节成员数量最多5个chars1[5][20]={"a1","a2","a3","a4","a5"};chars2[5][20]={"b1","b2",&qu......
  • inno setup 加密算法
    innosetup5.5可以对数据进行加密,密码使用SHA1算法相关函数可以搜索字符串"PasswordCheckHash"Hash计算过程CODE:00484C4453pushebxCODE:00484C4581C450FEFFFFaddesp,0FFFFFE50h......
  • 蒙特卡洛算法
    算法简介蒙特·卡罗方法(MonteCarlomethod),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特·卡罗方法的名字来源......
  • 模拟退火算法(SA,Simulated Annealing)思想
    模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。模拟退火算法(SimulatedAnnealing,SA)最早由Kirkpatrick等应用于组合优化领域......
  • 最大期望算法
        最大期望算法(Expectation-maximizationalgorithm,又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖......
  • 数据结构与算法-栈
    什么是栈 栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。相比数组和链表,栈带给我的只有限制,并没有任何优势。那我直接使用数组或者链表不就好了吗?为什么还要用这个“操作受限”的“栈”呢?从功能上来说,数组或链表确实可以替代栈,但你要知道,特定的数据结构是对特定......