选择排序--scala

Scala中的排序算法:冒泡、选择与插入排序 本文通过Scala语言实现的冒泡排序、选择排序和插入排序算法进行了解读。每种排序算法都有其特点和使用场景,通过Scala函数式编程的方式展示了算法的实现和排序过程。同时,文章还分析了每种算法的时间复杂度,为读者提供了算法效率的参考。 阅读详情
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)+"轮后~~");
    }
  }
}
scala-sorts: 探索Scala中的排序算法实战 空间复杂度指的是算法在运行过程中临时占用存储空间的大小。它同样不依赖于具体的硬件环境,是一种算法占用空间资源的度量标准。空间复杂度也通常用大O表示法来表示,如O(1)表示算法占用常数空间,O(n)表示占用线性空间等。Scala语言因其简洁性和表达力,在处理集合和数据流时显得尤为高效。Scala内置了一系列的排序方法,能够满足大多数排序需求。本章节将深入探讨Scala标准库中的排序函数,分析其排序方法的参数和选项,以及如何利用Scala的特性来实现自定义排序规则。 阅读详情

相关推荐

Proteus仿真AT89C51驱动DHT11:温湿度数据采集与LCD1602显示的5个调试坑点总结

本文总结了在Proteus仿真环境下使用AT89C51驱动DHT11温湿度传感器并通过LCD1602显示的5个常见调试坑点,包括DHT11时序问题、LCD1602初始化错误、数据校验失败、仿真特有差异及系统稳定性问题,提供了详细的解决方案和优化代码示例,帮助开发者高效完成温湿度采集项目。

weixin_30335575的博客 356

scala 选择排序

/** * 工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素, * 存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素, * 然后放到已排序序列的末尾 */ object SeletionSort extends App { var list: Array[Int] = Array(2, 45, 1, 4, 8, 2, 5, 8, 35, ...

200+新能源动力电池研发测试生产售后项目上位机开发 672

硬件工程师入门进阶,一文搞懂,看这篇就对了

每家公司的datasheet都有严格的规范,及独特的风格,有时候还会穿插一些原理性的介绍,比如ADI公司的一些ADC/DAC器件资料里面,还会包含AD/DA转换的原理性讲解内容,Datasheet既可以是我们设计上的好帮手,也是学习的好资料。在出货量大的产品中,尽量减少物料种类,比如开头说的,1%的电阻不得不用,那么5%的替换成1%的,物料种类就减少一种,量就大了,能不能争取更优的价格呢?如果说前面学的是内功,那这一关,是招式、是工具的使用,原理图和PCB设计都有对应的工具,教程也很多,且比较容易上手。

一路带飞的博客 5万+

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(...

bymain的博客 653

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):向量检

LDZKKJ的博客 1431

【短距离通信】【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)组成。

风云说通信 1108

选择排序的scala实现

最近在微信读书上翻到一本不错的算法书,叫算法图解,里面比较趣味性的讲解了计算成本,从二分查找开始,到选择排序、快速排序等等,书里面的算法实现都是通过python来实现的,因此,考虑用scala对相关算法进行实现,在了解算法的同时能够练练自己的代码能力,话不多说,直接上代码: 选择排序的最基础原理就是从一个数组中先找出一个最大(或者最小)的数字,放入到新数组的第一位,再从剩下的数组中找出最大的数字...

lorrylee1346的博客 365

多体动力学分析软件:SIMPACK_(3).SIMPACK模型创建与编辑

在 SIMPACK 中,模型的创建与编辑是多体动力学分析的基础。通过了解模型的基本结构、创建方法、编辑技巧和高级功能,用户可以高效地构建和优化复杂的多体系统模型。无论是手动创建、通过脚本创建还是导入现有的 CAD 模型,SIMPACK 都提供了强大的工具和灵活的接口,帮助用户实现精确和高效的仿真分析。希望本节内容对您在 SIMPACK 中进行多体系统建模有所帮助。如有任何问题或需要进一步的指导,请参考 SIMPACK 的官方文档或联系技术支持。

kkchenjj的博客 1011

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

doctorq 1788

华为OD机试真题 新系统-字符串格式调整(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【字符串格式调整】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串格式调整】多语言题解

qq_45776114的博客 1142

OPTEE常见13类问题与解答

OPTEE常见13类问题并解答

AI-安全-功耗 1204

用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)) {

stan1111的博客 852

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("[",",","]")) //...

weixin_44701192的博客 269

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

GodXuzzZ的博客 345

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

scala 排序算法 简单选择算法

package com.xing.hai /** * Created by xxxxx on 2/22/2017. * 简单选择排序 * 核心逻辑 * 在要排序的一组数中,选出最小的一个数与第一个位置的数交换; * 然后在剩下的数当中再找最小的与第二个位置的数交换, * 如此循环到倒数第二个数和最后一个数比较为止。 */ ...

78

java和scala版本的冒泡排序、快速排序、归并排序、选择排序、插入排序

1.冒泡排序 ① java版本的冒泡排序 import java.util.Arrays; //冒泡排序 public class BubbleSort { /** * 冒泡排序 * @param arr 要排序的数组 */ public static void bubbleSort(int[] arr) { int tmp;/...

程序猿丶HLK 432

选择排序(OC/java/python/scala)

一、浅谈数组和链表 数组:具有相同类型的元素的集合。数组分配在一块连续的数据空间上,因此存储效率低,插入和删除元素效率低,支持随机访问,访问元素效率高。 链表(单向链表、双向链表、循环链表):链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。插入,删除效率高,空间利用率高,不支持随机访问,查找元素效率低复制代码二、 选择排序介绍: 1.方案一:...

weixin_34355881的博客 137

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 ;    

只为曾经的执着 860

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.

qq_38748148的博客 494

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) { ...

一名假的程序猿 323

scala实现简单排序

使用scala实现冒泡、选择、插入排序

a805814077的博客 1358

Scala语言的排序算法

内部排序:所有待排序数据都可以放入内存中,算法在内存中进行排序。外部排序:数据量较大,无法全部放入内存,需要借助外部存储设备进行排序。稳定排序:相等元素的相对次序在排序后仍然保持不变。不稳定排序:相等元素的相对次序可能会改变。在讨论具体的排序算法之前,我们先了解一下 Scala 中的常用集合类型。Scala 提供了丰富的集合库,包括ListArraySetMap等,这些集合类型在排序时具有各自的特点。排序算法在计算机科学中具有重要的意义,理解并掌握不同的排序算法对于开发高效的程序至关重要。

2501_91390782的博客 415
上一篇: 分治算法--汉诺塔应用(scala实现)
下一篇: 什么才是一个好的数据模型设计
问道2020
博客等级 码龄8年 4粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值