首页 > 编程语言 >排序算法

排序算法

时间:2022-10-09 19:55:51浏览次数:41  
标签:数列 基准值 重复 步骤 元素 算法 排序

排序算法

选择排序:

先将数列完完全全检索一边,然后选出最小的数与最左边数字替换;
接着从第二个数字开始再检索整个数列,选出最小的数字后与第二个数字替换,以此类推;
重复步骤1-2,直至排序完成。

冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换它们两个;
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
针对所有的元素重复以上的步骤,除了最后一个;
重复步骤1~3,直到排序完成。

插入排序

从第一个元素开始,该元素可以认为已经被排序;
取出下一个元素,在已经排序的元素序列中从后向前扫描;
如果该元素(已排序)大于新元素,将该元素移到下一位置;
重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
将新元素插入到该位置后;
重复步骤2~5。

快速排序

从数列中挑出一个元素,称为 “基准”(pivot);
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

截图

标签:数列,基准值,重复,步骤,元素,算法,排序
From: https://www.cnblogs.com/Yu-Hongruojir/p/16773443.html

相关文章

  • 排序算法
    选择排序#include<stdio.h>intmain(){inti,j,t,a[9];//定义变量及数组为基本整型printf("请输入8个数:\n");for(i=1;......
  • 算法,比较rust golang nodejs 斐波那契算法
    运行环境:macOSm1javascriptfunctionfid(n){if(n==0)return0if(n==1)return1returnfid(n-1)+fid(n-2)}letstart_time=Date.now();fid(50)lete......
  • 【路径规划-TSP问题】基于蚁群算法求解旅行商问题含Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • AcWing算法提高课 卡特兰数
    卡特兰数的基本模型是,(0,0)->(n,n)且不越过x=y这条线等价于另一个模型:01序列且全部前缀中0的个数都大于1,其中0对应于x方向移动,1对应y方向移动例题:https://www.acwing.co......
  • 统计学习方法学习笔记-09-EM算法及其推广
    首先叙述EM算法,然后讨论EM算法的收敛性,作为EM算法的应用,介绍高斯混合模型的学习,最后介绍EM算法的推广-GEM算法EM算法的引入目的:概率模型有时候既含有观测变量,也含有隐变......
  • 选择排序、冒泡排序、插入排序、快速排序
    排序选择排序以数组a[8]={12,23,8,15,33,24,77,55}为例WHILE(notsortedyet)findsmallestunsorteditemSwapfirstunsorteditemwiththesmallests......
  • Java加解密-SM4国密算法
    SM4国密算法简介SM4依赖包SM4类SM4_Context类SecuritySM4类=================================== SM4国密算法简介与DES和AES算法相似,国密SM4算法是一种分组加密......
  • 计算机算法设计与分析 实验题 及代码
    很舒服的题目,不难。科班的知识就是舒服。实验2:递归与分治实验目的熟悉递归算法的基本思想和基本步骤,熟练掌握递归公式的推导和定义方法,用递归算法解决实际问题。实验要......
  • python递归算法
    递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调自己”,一个使用递归技术的方法将会直接或间接的调用自己。利用递归可以用简单的程序来解决......
  • 图论-最短路算法
    一、floyd1.介绍 floyd算法只有五行代码,代码简单,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3),可以求多源最短路问题。 2.思想: Floyd算法的基本思想如......