黑马程序员-java中的各种简单排序法实例

Allegro规则管理器实战:5步搞定Xnet等长组设置(含Relative Propagation Delay配置) 本文详细介绍了在Cadence Allegro规则管理器中,通过5个实战步骤高效设置Xnet等长组的方法。核心内容包括创建Xnet属性、定义引脚对、建立匹配组,并重点讲解了Relative Propagation Delay规则的配置与应用,帮助PCB设计师确保高速信号时序对齐,提升系统稳定性与性能。 阅读详情
---------------------- android培训、 java培训、期待与您交流! ----------------------演示各种简单排序算法

/**
 * 演示各种排序方法
 * @author 李见黎
 *2012-3-17
 */
import java.util.*;

public class Sort {

 /**
  * @param args
  */
 public static void main(String[] args) {
//  int arr[]={1,3,4,2,0,-5,6,7};  //最开始测试数组
  
  /**
   * 产生数组的过程
   */
  int len=30;
  int arr[]=new int[len];
  for(int i=0;i<len;i++)
  {
   //让程序随机产生数,也是很实用的小技巧
   //math.Random产生的是0~1的数
   int r=(int)(Math.random()*len);
   arr[i]=r;   
  }
  
  /**
   * 各种排序实例化
   */
  Bubble bubble=new Bubble();  //冒泡排序
  SelectSort selectSort=new SelectSort();  //选择排序
  InsertSort iSort=new InsertSort();  //插入排序
  
  /**
   * 实现排序,并且显示时间
   */
  Calendar calendar=Calendar.getInstance(); //掌握系统时间,很实用的小技巧
  System.out.println("开始前的时间:"+calendar.getTime());
  
//  selectSort.Sort(arr);
  
//  bubble.bubbleSort(arr);
  
  iSort.Sort(arr);
  //重新获得实例,刷新时间
  calendar=Calendar.getInstance();
  System.out.println("开始后的时间:"+calendar.getTime());
 
  /**
   * 显示排序结果,打印是最费时间的
   */
  for(int i=0;i<arr.length;i++)
  {
   System.out.println(arr[i]);
  }
 
 }

}

/**
 * 插入排序
 * @author 李见黎
 *2012-3-18
 */
class InsertSort
{
 public void Sort(int []arr)
 {
  for(int i=0;i<arr.length;i++)
  {
   int insertValue=arr[i];  //待插入的数
   //insertValue与前一个数比较
   int index=i-1;
   
   while(index>=0&&insertValue<arr[index])
   {//保证index不能使负数,越界
    //满足条件则把arr[index]向前移动
    arr[index+1]=arr[index];
    //将index向后移动
    index--;
   }
   //将insertValue插入到适当的位置
   
   arr[index+1]=insertValue;
   
  }
 }
}

/**
 * 冒泡排序法
 * @author 李见黎
 *2012=3-17
 */

class Bubble
{
 public void bubbleSort(int []arr)
 {
  
  int tempt=0;//中间变量
  
  //排序
  //外层排序,决定走几趟
  for(int i=0;i<arr.length-1;i++)
  {
   //内层循环,开始逐一比较,如果发现前一个数比后一个数大,则交换
   for(int j=0;j<arr.length-1-i;j++)
   {
    if(arr[j]>arr[j+1])
    {//前一个数比后一个数大,交换位置,把最大的放在最前面
     tempt=arr[j];
     arr[j]=arr[j+1];
     arr[j+1]=tempt;          
    }
   }
  }
 }
}

/**
 * 选择排序,速度比冒泡快点
 * @author Administrator
 *2012-3-17
 */
class SelectSort
{
 public void Sort(int []arr)
 {//将最小的数放到最前面
  int tempt=0;  //临时变量
  for(int i=0;i<arr.length-1;i++)
  {
   int min=arr[i];//第一数最小
   int minIndex=i;//记录最小数的下标
   
   //第一个数不参与比较,从第二个数开始比较
   
   for(int j=i+1;j<arr.length;j++)
   {
    if(min>arr[j])
    {//修改最小值
     min=arr[j];
     minIndex=j;
    }
   }
   
  //当退出for循环时就找到最小值,交换最小值
  
   tempt=arr[i];
   arr[i]=arr[minIndex];
   arr[minIndex]=tempt;
  }
 }
}

 

---------------------- android培训、 java培训、期待与您交流! ----------------------详细请查看: http://edu.youkuaiyun.com/heima
YOLO26涨点改进 | 独家创新、损失函数改进篇 | TGRS 2025顶刊 | 带来AIoU小目标涨点损失函数,增强了目标检测中对边界框形状和尺寸的敏感度,适合复杂场景和小物体检测中有效涨点 AIoU损失函数通过自适应形状感知和尺寸敏感加权机制,有效解决了YOLO26原生损失函数在小目标检测中的缺陷。实验结果表明,AIoU损失函数在多个数据集上均取得了显著的性能提升,尤其在小目标检测和多任务场景下表现突出。自适应形状感知,对形状差异较大的目标给予更大惩罚,提高边界框拟合精度尺寸敏感加权,对小目标的宽高比例差异给予更大权重,增强模型对小目标特征的学习能力梯度连续性好,即使在IoU=0时仍能提供有效的梯度更新,解决小目标梯度消失问题。 阅读详情

相关推荐

使用GitLab+Drone CI持续集成自动部署web项目,图文详细

kind: pipeline # 定义对象类型,还有secret和signature两种类型 type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型 name: mall-tiny-drone # 定义流水线名称 steps: # 定义流水线执行步骤,这些步骤将顺序执行 - name: package # 流水线名称 image: maven:3-jdk-8 # 定义创建容器的Docker镜像 volumes: # 将容器内目录挂载到宿主机,仓库

4105

黑马程序员-猴子吃桃问题-

---------------------- android培训、java培训、期待与您交流! ----------------------   import java.util.*; /** *李见黎 *猴子吃桃问题,每天吃一半,每天多吃一个,最后一天还剩一个 *2012-3-16 */ class Monkey {  public static void main(S

Accipiter 751

DC/DC开关电源EMC仿真红宝书

本红宝书系统性介绍开关电源EMC仿真方法,包括仿真原理、仿真思路、仿真工具以及仿真效率提升与仿测一致性的实战经验。从理论到仿真,从仿真到应用,真正帮你实现一文掌握开关电源EMC仿真!全文约14000字,适读人群:开关电源设计、电磁兼容EMC相关从业者,电磁相关专业研究生及CST仿真爱好者等。

电磁学社 2498

【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。

/* 2017年3月7日13:29:54 java基础50道经典练习题 例17 Athor: ZJY Purpose: 【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

xiyuan255的博客 7933

FPGA篮球计分器:从需求分析到模块化实现的实战指南

本文详细介绍了FPGA篮球计分器的设计与实现,涵盖需求分析、模块化设计及实战调试。重点解析了24秒精确倒计时、12分钟比赛计时、比分统计和数码管显示等核心模块的Verilog实现,提供了按键消抖、状态机设计和BCD码处理等关键技术细节,帮助开发者掌握FPGA数字系统设计方法。

sql99的博客 218

乐视三合一体感摄像头--基本信息及windows下部分开发

乐视三合一体感摄像头--基本信息及windows下部分开发Introduction基本信息Windows下使用安装驱动使用openNI使用imageJ调用RGB图像Q:参考资料 Introduction       乐视三合一体感摄像头是乐视对标kinect,做的一款3D体感摄像头;设计目的为用于电视机上体感使用的,包括其USB结构都是为了符合电视机直接操作的,同时是支持相应的游戏操作;但是自从乐视倒闭之后,价格从之前标价899降到了现在140+左

GRF-Sunomikp31 1万+

黑马程序员-java对象数组的使用实例

---------------------- android培训、java培训、期待与您交流! ----------------------java中对象数组的使用。 kage com.ljl.test; import java.io.BufferedReader; import java.io.InputStreamReader; /**  * 对象数组的使用  * @author

Accipiter 647

机器人控制入门:用SAC算法让机械臂学会抓取(PyBullet仿真教程)

本文详细介绍了如何使用SAC算法在PyBullet仿真环境中训练机械臂完成抓取任务。通过强化学习中的软Actor-Critic(SAC)算法,结合熵最大化机制和双Q网络架构,有效解决了机械臂控制中的探索难题。教程包含环境搭建、算法原理、状态空间设计、奖励函数优化等核心内容,并提供了实用的训练技巧和参数调优指南。

weixin_29091105的博客 359

黑马程序员-交通灯管理系统

---------------------- android培训、java培训、期待与您交流! ----------------------   首先,向张老师致敬, 我认为就交通灯问题,只能算作是坦克大战游戏中间的一个很小的部分的,完全可以采取其中的设计思想。最重要的是搞清楚交通灯的数学模型,然后才是类的设计。 在交通灯的设计过程中很好的设计思路就是画出图,这个是张老师教给的比较有效的方法

Accipiter 504

[STC32G144K246入门第六步]DAC驱动

本文摘要介绍了STC32G144微控制器内置的12位DAC模块特性与应用。该芯片集成双通道独立DAC,需通过内部运放缓冲后从P0.7/P5.0引脚输出,支持音频处理、波形生成等应用场景。重点阐述了DAC的R-2R梯形网络工作原理、关键性能指标(12位分辨率、转换速度等)及编程配置方法,包括频率设置、寄存器操作和运放引脚配置。文中还提供了32点正弦波表示例和初始化代码,强调参考电压稳定性对输出精度的重要影响。

sinat_58149788的博客 139

手把手教你学Simulink--基于Simulink的移相全桥DC-DC变换器仿真建模

特点高效性:通过实现零电压开关(ZVS)减少开关损耗。电气隔离:使用变压器提供输入输出间的电气隔离。适用于中高功率应用:如服务器电源、工业电源等。挑战控制复杂度:精确控制相位差以实现软开关。元件选择:合适的电感、电容值对于性能至关重要。动态响应:快速响应负载变化,保持稳定的输出电压。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的PSFB变换器。根据工作频率和谐振元件值确定合适的电路参数。实现有效的控制策略来维持输出电压稳定,并实现软开关。

MHD0815的博客 518

黑马程序员-java中this的使用

---------------------- android培训、java培训、期待与您交流! ----------------------     java中this的使用 /**c *作者:李见黎 *this的重要性 *2012-3-12 */ public class  This  {  public static void main(String[] args)

Accipiter 521

PostgreSQL的学习心得和知识总结(一百二十六)|深入理解PostgreSQL数据库SQL执行时间计算 \timing 和 log_duration的使用和原理

1、参考书籍:《PostgreSQL数据库内核分析》2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》3、

孤傲小二~阿沐的博客 984

黑马程序员—学习笔记—各种排序法

- -----Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- JAVA中的排序算法一般主要有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。 冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。 选择排序法是将数

a1014428289的博客 474

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

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

黑马程序员——Java基础——数组

数组 数组是同一种类型的数据的集合,其实数组就是一个容器。 Java中出现了数组,数组有些什么用处呢?可以自动给数组中的元素从0开始编号,方便操作这些元素 定义数组的两种格式: 格式1:元素类型[] 数组名=new 元素类型[元素个数或数组长度];      示例:int[] i=new int[5];      也有程序员这么写:int arr[]=new i

libin1127的博客 578

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

黑马程序员——Java数组排序的常见方法

---------------------- android培训、java培训、期待与您交流! ---------------------- JAVA对数组进行排序功能操作时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 1)快速排序法:主要是运用了Arrays中的一个方法Arrays.sort()实现。代码如下: import java.util.Arrays;   pu

MICKEY@STUDY 661

假人有限元模型

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

黑马程序员:数组排序方法的总结

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。

javafresh0413的专栏 440

黑马程序员_java入门_数组

------- android培训、java培训、期待与您交流! ----------   一.数组的定义 数组属于引用数据类型,是一个容器 数组声明的格式 int[] x=new int[3];//创建一个新数组,里面存三个元素 int x[]=new int[3]; 一般用第一个,一目了然就知道是一个数组   初始化数组 int[] arr=new int[]{1,2,3,

ztr999的专栏 454

黑马程序员_java中的常见算法

   ------- android培训、java培训、期待与您交流! ---------- 本人最近收集整理的一些排序算法,希望对大家有所帮助! 1、选择排序(Selection sort)、插入排序(Insertion sort)与气泡排序(Bubble sort)这三个排序方式是初学排序所必须知道的三个基本排序方式,它们由于速度不快而不实用。 public class BasicS...

iteye_17834的博客 207

黑马程序员_java学习for循环,函数,排序

 ------- http://www.itheima.com" target="blank">android培训、http://www.itheima.com" target="blank">java培训、期待与您交流! ---------- 一、 package believeyourself; public class javaFunction {   //定义函数

u013508824的专栏 616

黑马程序员java学习— 数组的选择排序和冒泡排序

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡排序法、选择排序法、插入排序法。其中常见的是选择排序法和冒泡排序法。 选择排序原理: 1.将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素 2.循环第1条规则,找出最小元素,放于第1个位置 3.经过n-1轮比较完成排序 简单而言,每轮都找到最小的放到前面。例:{8 ,2 , 3 , 7 ,

fangke713的专栏 662

"黑马程序员"数组(Array)学习笔记

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 数组 数组的定义:数组是同一种数据类型的集合,也可以把它看成一个容器。Java语言的数组与js的数组有所区别,js数组可以是不同数据类型的集合,原因在于java是强类型语言,js是弱类型语言。 定义格式: 数据类型[] 数

Hacker_AH的专栏 648

黑马程序员 Java基础知识总结-数组

数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组 java中的数组必须先实例化然后再使用,实例化的两种格式: 格式一: 元素类型[] 数组名 = new 元素类型[数组长度] 如:int[] arr = new int[10]; 格式二: 元素类型[] 数组名= new 元素类型[]{元素,元素,……}; 如:int[]

qc Liu 的专栏 670

黑马程序员—关于数组的应用

------- android培训、java培训、期待与您交流! ---------- 一、数组的概念: 数组是一种数据结构。可以用于存储多个数据。Java数组要求所有的数组元素都具有相同的数据类型。而且一旦一个数组初始化完毕,数组在内存中所占用的空间将被固定下来,因此数组的长度将不可改变,即使把某个数组元素的数据清空,但它所占的空间依然被保留,依然属于该数组,数组长度依然不可变。 Ja

xiongyongbiao的专栏 638

黑马程序员——Java学习笔记——数组的排序和查找

一、数组的排序   排序是数组算法中比较简单的部分,对于我们比较初级的程序员,最为常用的排序方式就是选择法排序和冒泡法排序。   1.1 选择法排序的思想:   数组在系统中的连续储存的,所以如果我们想将他进行选择排序,只需要不断的通过选择符合条件的最大值(或者最小值),然后再进行数组位置的交换即可。   1.2 选择排序的具体步骤: 在进行排序时,首先要确定两个嵌套的循环,第一

key_fans的博客 454

黑马上程序员----2015.6.11java笔--break,堆,重载,排序,数组

1.break 和 continue语句的作用范围 2.break 和 continue单独存在时,下面不可以有任何语句,因为无效。 3.当函数运算后,没有具体的返回类型用void表示。当返回类型为void时,函数中的return可以省略不写。 4.函数里面不能定义函数 5.如何定义一个函数         a.既然函数是一个独立的功能,那么该功能的运算结果是什么先明确。

u010870544的博客 390
上一篇: 黑马程序员-java对象数组的使用实例
下一篇: 黑马程序员-java中生成图形界面
Accipiter
博客等级 码龄17年 27粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值