object SelectSort {
def main(args: Array[String]): Unit = { //创建要给30个的随机的数组
val arr = new Array[Int](30)
for (i <- 0 until 30) {
arr(i) = (Math.random * 800).toInt // 生成一个[0, 800) 数
}
System.out.println("排序前")
//System.out.println(Arrays.toString(arr));
val data1 = new Date
val simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val date1Str = simpleDateFormat.format(data1)
System.out.println("排序前的时间是=" + date1Str)
selectSort(arr)
val data2 = new Date
val date2Str = simpleDateFormat.format(data2)
System.out.println("排序前的时间是=" + date2Str)
//System.out.println("排序后");
}
def selectSort(arr: Array[Int]): Unit = { //在推导的过程,我们发现了规律,因此,可以使用for来解决
//选择排序时间复杂度是 O(n^2)
for (i <- 0 until arr.length - 1) {
var minIndex = i
var min = arr(i)
for (j <- i + 1 until arr.length) {
if (min > arr(j)) { // 说明假定的最小值,并不是最小
min = arr(j) // 重置min
minIndex = j // 重置minIndex
}
}
// 将最小值,放在arr[0], 即交换
if (minIndex != i) {
arr(minIndex) = arr(i)
arr(i) = min
}
//System.out.println("第"+(i+1)+"轮后~~");
}
}
}
相关推荐
Proteus仿真AT89C51驱动DHT11:温湿度数据采集与LCD1602显示的5个调试坑点总结
本文总结了在Proteus仿真环境下使用AT89C51驱动DHT11温湿度传感器并通过LCD1602显示的5个常见调试坑点,包括DHT11时序问题、LCD1602初始化错误、数据校验失败、仿真特有差异及系统稳定性问题,提供了详细的解决方案和优化代码示例,帮助开发者高效完成温湿度采集项目。
scala 选择排序
/** * 工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素, * 存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素, * 然后放到已排序序列的末尾 */ object SeletionSort extends App { var list: Array[Int] = Array(2, 45, 1, 4, 8, 2, 5, 8, 35, ...
硬件工程师入门进阶,一文搞懂,看这篇就对了
每家公司的datasheet都有严格的规范,及独特的风格,有时候还会穿插一些原理性的介绍,比如ADI公司的一些ADC/DAC器件资料里面,还会包含AD/DA转换的原理性讲解内容,Datasheet既可以是我们设计上的好帮手,也是学习的好资料。在出货量大的产品中,尽量减少物料种类,比如开头说的,1%的电阻不得不用,那么5%的替换成1%的,物料种类就减少一种,量就大了,能不能争取更优的价格呢?如果说前面学的是内功,那这一关,是招式、是工具的使用,原理图和PCB设计都有对应的工具,教程也很多,且比较容易上手。
scala 选择排序
package algorithm import org.apache.hadoop.io.LongWritable.Comparator import scala.collection.mutable.ListBuffer /** * Created by Administrator on 2018/6/19. */ object secSortApp { def main(...
Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评
文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检
【短距离通信】【WiFi】精讲802.11n/ac/ax mpdu和ampdu最大长度
在 Wi-Fi 标准(802.11n、802.11ac 和 802.11ax)中,和是数据传输的核心概念。理解它们各自的作用以及不同标准下的最大长度限制,有助于深入了解 Wi-Fi 的性能优化机制。以下是对802.11n802.11ac和802.11ax中MPDU和A-MPDU最大长度的详细技术分析和对比。1. MPDU 和 A-MPDU 的基本概念MPDU 是经过 MAC 层处理后的数据单元,主要由MAC层数据帧和物理层的传输头部(PHY headers)组成。
选择排序的scala实现
最近在微信读书上翻到一本不错的算法书,叫算法图解,里面比较趣味性的讲解了计算成本,从二分查找开始,到选择排序、快速排序等等,书里面的算法实现都是通过python来实现的,因此,考虑用scala对相关算法进行实现,在了解算法的同时能够练练自己的代码能力,话不多说,直接上代码: 选择排序的最基础原理就是从一个数组中先找出一个最大(或者最小)的数字,放入到新数组的第一位,再从剩下的数组中找出最大的数字...
多体动力学分析软件:SIMPACK_(3).SIMPACK模型创建与编辑
在 SIMPACK 中,模型的创建与编辑是多体动力学分析的基础。通过了解模型的基本结构、创建方法、编辑技巧和高级功能,用户可以高效地构建和优化复杂的多体系统模型。无论是手动创建、通过脚本创建还是导入现有的 CAD 模型,SIMPACK 都提供了强大的工具和灵活的接口,帮助用户实现精确和高效的仿真分析。希望本节内容对您在 SIMPACK 中进行多体系统建模有所帮助。如有任何问题或需要进一步的指导,请参考 SIMPACK 的官方文档或联系技术支持。
Scala练习-选择排序
package day14import day14.StraightInsertionSort.{printlnArray, sortN2}/** * Created by doctorq on 2017/6/28. * 选择排序 */ object SelectionSort extends Utils with App { def sort(unSorted: Array[Int
华为OD机试真题 新系统-字符串格式调整(C/C++/Py/Java/Js/Go)
华为OD机试 新系统真题【字符串格式调整】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串格式调整】多语言题解
OPTEE常见13类问题与解答
OPTEE常见13类问题并解答
用scala实现冒泡和选择排序
scala实现冒泡排序和选择排序 class sort{ def BubbleSort(arr: Array[Int]): Unit = { for (i <- 0 until arr.length-1) //总共运行n-1趟 { for (j <- 0 until arr.length-1-i) //一趟的比较次数,每轮减少一次 { if(arr(j+1)<arr(j)) {
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
scala选择排序
package com.aura.scala.test /* scala的选择排序的实现 */ object XuanZhesort { def main(args: Array[String]): Unit = { //定义数组 var array=Array(1,4,3,6,2,8,3,3) //排序前进行输出数组 println(array.mkString("[",",","]")) //...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
用java和scala代码实现快速排序、选择排序、冒泡排序
目录排序方法代码java实现排序生成随机数组冒泡排序选择排序快速排序测试Scala排序生成随机数组冒泡排序选择排序快速排序 排序方法代码 java实现排序 生成随机数组 public static int[] arr; // 生成随机数组 public static int[] getRandomArr(int size) { arr = new int[size]; Random random = new Random(); for (in
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
scala 排序算法 简单选择算法
package com.xing.hai /** * Created by xxxxx on 2/22/2017. * 简单选择排序 * 核心逻辑 * 在要排序的一组数中,选出最小的一个数与第一个位置的数交换; * 然后在剩下的数当中再找最小的与第二个位置的数交换, * 如此循环到倒数第二个数和最后一个数比较为止。 */ ...
java和scala版本的冒泡排序、快速排序、归并排序、选择排序、插入排序
1.冒泡排序 ① java版本的冒泡排序 import java.util.Arrays; //冒泡排序 public class BubbleSort { /** * 冒泡排序 * @param arr 要排序的数组 */ public static void bubbleSort(int[] arr) { int tmp;/...
选择排序(OC/java/python/scala)
一、浅谈数组和链表 数组:具有相同类型的元素的集合。数组分配在一块连续的数据空间上,因此存储效率低,插入和删除元素效率低,支持随机访问,访问元素效率高。 链表(单向链表、双向链表、循环链表):链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。插入,删除效率高,空间利用率高,不支持随机访问,查找元素效率低复制代码二、 选择排序介绍: 1.方案一:...
scala 选择排序 冒泡排序
def xuanze(a: Array[Int]) { var j: Int = 0; var i: Int = 0; var index = 0; var aLen = a.length -1 ; for (i for(j if (a(j) > a(index)) index = j ;
scala实现冒泡排序、插入排序、选择排序、快速排序、归并排序
冒泡排序 def bubbleSort(array: Array[Int]):Unit={ var swap = true//设置swap值,如果没有发生交换则证明已经有序,不必再继续循环 var temp = 0 for(i <- 0 until array.length if swap == true){ swap = false for(j<- 0 until array.length-i-1){//注意这里的判断条件 i.
Java(Scala)排序总结(选择|冒泡|插入|快速|归并)
Java版本 package sort; import java.util.Arrays; /** * @ClassName: Sort * @Description: * @Author: xuezhouyi * @Version: V1.0 **/ public class Sort { public static void main(String[] args) { ...
scala实现简单排序
使用scala实现冒泡、选择、插入排序
Scala语言的排序算法
内部排序:所有待排序数据都可以放入内存中,算法在内存中进行排序。外部排序:数据量较大,无法全部放入内存,需要借助外部存储设备进行排序。稳定排序:相等元素的相对次序在排序后仍然保持不变。不稳定排序:相等元素的相对次序可能会改变。在讨论具体的排序算法之前,我们先了解一下 Scala 中的常用集合类型。Scala 提供了丰富的集合库,包括ListArraySetMap等,这些集合类型在排序时具有各自的特点。排序算法在计算机科学中具有重要的意义,理解并掌握不同的排序算法对于开发高效的程序至关重要。
356



被折叠的 条评论
为什么被折叠?



