【备忘】温习常用排序算法


import java.util.Arrays;

/**
* 几种常见排序算法,插入、选择、冒泡
* @author hjc
*
*/
public class PaiXu {

/**
* 插入排序 从小到大
* @param nums
*/
public static void charu(int[] nums){
for(int i=1;i<nums.length;i++)//待插入
for(int j=0;j<i;j++){//已排好序
if(nums[i]<nums[j]){//执行插入操作
int temp=nums[i];//记录当前要被插入的数
for(int x=i;x>j;x--)//向右移动
nums[x]=nums[x-1];
nums[j]=temp;//插入操作
break;//插入完毕结束循环
}
}
System.out.println(Arrays.toString(nums));
}

/**
* 选择排序 从小到大
* @param nums
*/
public static void xuanze(int[] nums){
for(int i=0;i<nums.length-1;i++){
int iMin=i;//初始最小数下标
for(int j=i+1;j<nums.length;j++)
if(nums[j]<nums[iMin])//寻找最小数下标
iMin=j;
if(i!=iMin){//如果最小数下标发生变化,则执行交换操作
nums[i]=nums[i]+nums[iMin];
nums[iMin]=nums[i]-nums[iMin];
nums[i]=nums[i]-nums[iMin];
}
}
System.out.println(Arrays.toString(nums));
}

/**
* 冒泡排序 从小到大 把大的沉下去
* @param nums
*/
public static void maopao(int[] nums){
int n=nums.length;
for(int i=0;i<n;i++){//趟数
int flag=0;
for(int j=0;j<n-1-i;j++)//次数
if(nums[j]>nums[j+1]){//执行交换操作
nums[j]=nums[j]+nums[j+1];
nums[j+1]=nums[j]-nums[j+1];
nums[j]=nums[j]-nums[j+1];
flag++;
}
if(flag==0)
break;//如果经过一轮排序后没有交换操作,那就说明已经排好序结束循环
}
System.out.println(Arrays.toString(nums));
}

public static void main(String[] args) {
int is[]={3,29,23,53,99,1,2};
charu(is);
xuanze(is);
maopao(is);
}
}

如何更好的理解PFC(功率因数校正) 此电路虽然简单,可以在前期设计的无PFC功能的设备上,简单的增加一个合适的电感(适当的选取L和C的值),从而达到具有PFC的作用,但是这种简单的、低成本的无源PFC输出纹波较大,滤波电容两端的直流电压也较低,电流畸变的校正及功率因数补偿的能力都很差,而且L的绕制及铁芯的质量控制不好,会对图像及伴音产生严重的干扰,只能是对于前期无PFC设备使之能进入市场的临时措施。)在t4~t5期间尽管二极管左边电压在逐步上升,但是由于二极管右边的Uc放电缓慢右边的电压Uc仍旧大于左边,二极管仍旧反偏截止。 阅读详情

相关推荐

GPU计算板卡设计原理图:735-基于3U VPX的AGX Xavier GPU计算主板

基于3U VPX的 Jetson AGX Xavier GPU计算主板是LINUX环境下软件开发等理想工具。是用于视频处理,相机信号,支持PCIE、USB、RS422、RS232、网口、SPI、I2C等综合性的信号计算主板。3. 支持外接HDMI连接显示器,并支持键盘,鼠标等外接设备进行调试。8 核 ARM v8.2 64 位 CPU、8 MB L2 + 4 MB L3。4路Gigabit Ethernet (10/100/100)link。1路RS232,1路RS485。1路 NVMe PCIeX4。

980

常用排序算法备忘录

快速排序 public class QuickSort { public static void main(String[] args) { int[] array = {3, 5, 1, 4, 6, 2, 8,7};//3, 5, 1, 4, 6, 2, 8 StringBuilder sb = new StringBuilder(); n...

sky_100的博客 203

告别 RPA 和 Selenium,MCP + Playwright 成为自动化开发新宠!

摘要: 随着数字化转型加速,传统自动化工具(如RPA和Selenium)在复杂场景中暴露出开发成本高、灵活性不足等问题。新一代解决方案MCP(Model Context Protocol)与Playwright的结合,通过AI与自动化的无缝对接,实现了智能化的任务处理。MCP支持自然语言交互和上下文感知,开发者无需编写复杂代码即可生成自动化脚本;Playwright则提供多浏览器支持、高性能和易用性。二者结合显著提升开发效率,使自动化更智能、灵活。文章还对比了VS Code与Trae中配置Playwrigh

我先测了 2209

排序算法备忘

排序算法备忘 冒泡排序 arr = [2, 4, 1, 5, 0, 9, 3, 7] n = len(arr) for i in range(0, n): bubble = False for j in range(0, n - 1 - i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = a...

昨夜星辰的博客 595

如何在Tagetik系统中抽取处理SAP系统财务数据

如何在Tagetik系统中抽取处理不同核算系统财务数据:以SAP为例,简单讲一下Tagetik对接SAP数据的基本情况

2201_75401663的博客 578

BepInEx插件开发实战:用Visual Studio快速创建你的第一个Unity Mod(2024新版)

本文是2024年新版BepInEx插件开发实战指南,详细讲解如何使用Visual Studio快速创建你的第一个Unity Mod。内容涵盖专业开发环境搭建、插件生命周期解析、利用HarmonyX进行游戏代码注入、实现实时调试与热重载技巧,以及项目配置与打包发布全流程,助你从Mod使用者转变为创造者。

weixin_29002595的博客 340

常用五大排序算法总结

注:以下算法代码为编程过程中自己排序根据基本性能和要求所创造的一个备忘录,经常写着代码忘记了排序算法怎么写,如有侵权,请联系我删除 1.插入排序 算法步骤 : 1.从第一个元素开始,通常认为该元素已经排序,从第二个元素开始 2.取下一个元素elem,从已排序的元素序列从后往前扫描 3.如果该元素大于elem,则将该元素移到下一位 4.重复步骤3,直到找到已排序元素中小于等于elem的元素 5.elem插入到该元素的后面,如...

DoKiDoK的博客 386

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

睡觉不打呼噜的博客 1565

面试常用排序算法总结

前言 面试的死亡高发区是什么?手写快排. 其他的排序算法也经常会问到,虽然在工作中,我们很少有需要自己手写排序算法的机会,但是这种入门级的算法却是证明我们能力的一种简单方法.因此要熟悉掌握. 这篇文章,详细记录常用的一些排序算法,留以备忘. 本文所有代码可在github上下载查看.传送门 为了方便自己写,在测试过程中,使用了策略模式,感兴趣的童鞋可以移步设计模式之-策略模式 常用算法总结 图片来...

weixin_33854644的博客 240

麒麟V10 SP3国产化环境部署MySQL 8.0全流程实战

本文详细介绍了在国产化操作系统麒麟V10 SP3上部署MySQL 8.0的全流程实战指南。从环境准备、冲突排查到安装包处理、服务配置与安全加固,提供了详细的命令和技巧,帮助用户顺利完成MySQL 8.0的部署与优化,适用于国产化环境下的数据库应用。

weixin_29231027的博客 271

博途 V16(TIA portal V16)安装教程

本文提供了西门子TIA Portal V16软件的完整安装指南。内容包括百度网盘下载链接(提取码kv69)、详细安装步骤(关闭安全保护、典型安装设置)、授权破解方法,以及PLCSIM仿真功能的使用说明。重点演示了S7-1200 PLC程序的仿真过程,解析了仿真界面各元素功能,包括状态指示灯(RUN/STOP/ERROR)、操作按钮(RUN/STOP/MRES)和网络接口状态等。通过图文并茂的方式,完整呈现了从软件安装到PLC程序仿真的全流程操作。

lingchen1906的博客 6756

总结一些常用的排序算法,备忘

排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。   内排序有可以分为以下几类:   (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。   (2)、选择排序:简单选择排序、堆排序。   (3)、交换排序:冒泡排序、快速排序。   (4)、归并排序

荒野哞的专栏 788

经典排序算法复习

十大经典排序算法 备忘录 本博客用于快速复习几种简单排序算法。这些算法虽然经典,但是都很简单,只要明白其思想和原理,都能很快写出来。关键是要把握好一些细节之处,例如循环边界等。 代码 #pragma warning(disable : 4996) #include<iostream> #include<vector> #include<algorithm> #...

BlackCarDriver的博客 546

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

代码备忘录

\ 1. 语法备忘录 1.1 数组 数组初始化 java // 静态初始化 int[] a = {1,2,3,4,5} // 动态初始化 int[] b = new int[10]; for (int i = 0; i < b.length; i++) { b[i] = i; } new int[]{i, j}; python c c++ 数组长度 java int[] a = {1,2,3,4,5}; int length = a.length; c++

性感的小君君 262

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

排序算法-备忘录

跳转到总目录 文章目录排序算法冒泡排序选择排序插入排序希尔排序快速排序归并排序基数排序常用排序算法总结和对比 排序算法 排序的分类: 内部排序: 指将需要处理的所有数据都加载到内部存储器中进行排序。 外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。 常见的排序算法分类(见下图): 冒泡排序 基本介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后

haowu8888的博客 278

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

常用排序算法备忘录(一)

转载:http://www.cnblogs.com/eniac12/p/5329396.html排序算法稳定性的简单形式化定义为:如果Ai = Aj,排序前Ai在Aj之前,排序后Ai还在Aj之前,则称这种排序算法是稳定的。通俗地讲就是保证排序前后两个相等的数的相对顺序不变。1.冒泡排序冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法。它重复地走访过要排序的元素,依次比较相邻两个元素,如...

thankna的博客 649

面试常用算法归纳

注意:这里需要使用一个pair记录前一个dp[i]的最长子串的始末位置,在判断s[i]与s[i-1]不等时,需要继续往前判断s[i]是否包含在前一个dp[i-1]的子串中,如果在,则当前的dp[i]需要减去dp[i-1]子串的前一部分。对于二维dp的状态转移方程,大致都会是要从左、上及左上三个方向来推导,即:dp[i][j] = max(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])。对于dp[i]的定义为:以s[i]为结尾的【无重复字符的最长子串】的长度。

上官宏竹的专栏 4167

我的面试备忘录:各大排序算法(FROM JJ)

这个是我女朋友整理的排序算法,恩,她去了哪?MARVELL 程序依然是简单易懂,并且整理得当 #include using namespace std; #define NUM 5 /************************************************************** * 堆的定义 n 个元素的序列 {k1,k2,...,kn}当且仅当满足下列关系

小脸龙的老巢 5202

算法备忘录——排序

排序是为了让查找更有效率。一组无序的数字,字符串等元素,要从中找出某个特殊的元素,是一件很繁琐的事情,我们不得不一个一个列举比较。而面对一组有序的元素,要从中找到某个特殊元素A,或者判断某元素B是否存在,则效率要高很多。 前辈们排序算法研究已久,有些用直觉就能分析出来,即所谓基础排序,有些无法用直觉看出,还需要一些分析研究,即所谓高级排序。以下表格大致罗列一下主流的排序算法的特点。

zhou_chenz的博客 5235

备忘:java排序算法

[code="java"] 0.排序基类 /** * 为了后面排序算法扩展的方便,引入一个基础类Sorter */ package com.javasort; /** * 任何排序算法都继承此公共抽象基类Sorter * @author Daniel Cheng * */ public abstract cla...

ds590的专栏 157

iOS备忘:常用排序算法还记得多少...

排序方法 时间复杂度 时间复杂度 时间复杂度 空间复杂度 稳定性 平均情况 最好情况 最坏情况 辅助存储 冒泡排序 O(n²) O(n) O(n²) O(1) 稳定 选择排序 O(n²) O(n²) O(n²) O(1) 不稳定 快速排序 O(nlogn) O(nlogn) 有序或逆序 O(n²) O(nlogn) 不稳定 ...

夜阑微静的备忘录 229

常用排序算法--冒泡排序

最近在看几个基本的排序算法,于是便总结了一下,也算给自己当作备忘吧,如有错误的地方还请路过的批评指正。 下面从最基本的冒泡开始。 冒泡排序(假设从小到大) 基本思想: 是一个很简单的原地排序方法:从数组的第一个元素开始(这个元素就是当前的“泡”)向后遍历,如果后一个元素比当前的“泡大,那么当前的“泡”就变成了后一个元素;如果后一个元素比当前的“泡”小,那么交换“泡”和该元素的位置(

易木川 829

常用排序算法

排序在程序中非常常见,许多时候人们过于关注各种高级算法,在长久的工作学习中甚至只会调用库函数排序。闲来无事,整理了几种自己认为最常见的排序算法,仅为温习和备忘。插入排序,shell排序,选择排序,堆排序,快速排序,归并排序,冒泡排序

北极星 433

关于动态规划与备忘录方法的总结

参考书目——《计算机算法设计与分析 王晓东》 本文仅供博主备忘,诸多谬误,愿谅解 在基于划分子问题的基础上,衍生出两种优秀的方法——a. 动态规划  b. 备忘录算法  a. 动态规划的基础是最优子结构———若一个大问题可以划分成多个小问题,则在这多种划分中,必有一种划分,可使得作为宏观问题,这种划分得到的效果最优;而在每个划分出的子问题中,每个子问题也必有一个最优划分(否则

u010275257的专栏 2831

几种常见排序算法(备忘)

冒泡算法 /** * 冒泡排序 * 核心思想是相邻两两比较并交换 * @param array */ public static void bubbleSort(int[] array){ for (int i = 0; i < array.length -1 ; i++) { for (in...

厚积薄发 150
上一篇: 获得网页元素的坐标以及大小
下一篇: 复习java内部类
accphc
博客等级 码龄20年 13粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值