排序实训问答

排序

注意事项:

问:你这排序怎么会出现两个0毫秒 或者怎么会出现0毫秒的现象呢?

答:在计算机中,时间的计算是以毫秒为单位的。当两个时间间隔非常短,小于1ms时,计算机可能会将时间计算为0毫秒。因此,当排序算法的执行时间非常短时,可能会显示为0毫秒。

问:你们的实验结论是什么?

选择排序:

  • 优点:实现简单,不需要额外的内存空间
  • 缺点:不适用于数据量较大的排序场景

适用场合:适用于排序数据量较小的场合。

希尔排序:

  • 优点:排序速度相对较快,适用于数据量较大的排序场合
  • 缺点:实现较为复杂,需要设置合适的步长需要分析一下数据

适用场合:适用于数据量较大的排序场合。

快速排序:

  • 优点:排序速度较快,适用于数据量较大的排序场合
  • 缺点:对于极端情况(如逆序数据),速度会变慢

适用场合:适用于数据量较大的排序场合。

插入排序:

  • 优点:在部分有序的数组中表现较好
  • 缺点:对于逆序数据,也会变慢

适用场合:适用于部分有序的排序场合。

冒泡排序:

  • 优点:实现简单,不需要额外的内存空间
  • 缺点:时间复杂度较高,不适用于数据量较大的排序场合

适用场合:适用于排序数据量较小的场合。

排序算法解析

tips:说一下这几种排序怎么实现的

  1. 选择排序:就像打牌游戏中摸牌时那样,每次从牌堆中找到最小或最大的牌,放到手中的牌堆,直到牌堆中的牌都排好序了。但是这种方法比较慢,因为两个数进行比较后,它们在排好序中的位置可能并不是最终的位置。

  2. 希尔排序:我们可以先把待排序的数以一定的间隔分为几组,对于每组数分别进行排序,然后逐渐缩小组的间隔距离再进行排序。这样做的好处是可以大大减少比较和移动元素的次数,从而提高排序效率。

  3. 快速排序:选择一个基准点,将数组分成两部分,左边部分的元素都比基准点小,右边部分的元素都比基准点大。然后对左右两部分数组分别进行同样的操作,直到数组排好序。这种算法的好处是快速,但需要注意基准点的选择。

  4. 插入排序:类似于打扑克时的排序方式,将手中的牌逐个插入到已经排好序的牌堆中,要注意插入时的位置,这种排序方法尤其适用于排序数据量较小的场合。

  5. 冒泡排序:从第一个元素开始,对相邻的两个元素进行比较和交换,把最大的元素“冒泡”到数组的最后一个位置。然后,对除最后一个位置以外的数组元素进行同样的操作,直到整个数组排好序。这种算法的缺点是效率较低,但优点是实现简单,适用于排序数据量较小的场合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git stash 缓存 简介

当我们在使用git的时候,又是会有这种情况:当新的需求了的时候。我们需要为此需求新建一个分支,再次分支上进行修改,当经过测试,提交代码时,在将其合并到主分支,或生产分支上。 但是有时候也有失…

java jsp session_JSP中Session的使用

你的session对象ID是:int Num 0; //定义前面要加!号synchronized void countPeople() { //同步方法Num;}%>if (session.isNew()) { //推断是否为新用户countPeople();String str String.valueOf(Num);session.setAttribute("count", str); //将str 加…

java中的线程池有哪些,分别有什么作用?

java中的线程池有哪些,分别有什么作用? 1.进程-线程简单介绍 2.java的线程池是什么,有哪些类型,作用分别是什么 3.使用线程池的优点 1.进程-线程的简单介绍 进程 什么是进程呢? 进程是计算机中的程序关于某数据集合…

二进制编译安装mysql_二进制编译安装mysql

1:解压包及做链接# tar xvf mysql-5.5.13-linux2.6-i686.tar.gz -C /usr/local# cd /usr/local# ln -sv mysql-5.5.13-linux2.6-i686 mysql# cd mysql---------------------------------------------------------------2:增加用户mysql及创建数据库数据存放目录/mydata/data# g…

线程安全的集合类有哪些?

验证ArrayList线程不安全 ArrayList 应当是开发中用到的最多的集合类,是动态列表,List 接口的实现类。 多数情况下,我们实在单线程环境使用,或者是在方法内部,以局部变量的形式使用,一般不会出现线程安全问…

try-catch-finally的执行顺序

try-catch-finally的执行顺序 结论: 不管有没有出现异常,finally代码块都会执行;不管try和catch的代码块中有return时,finally仍会执行,且如果finally代码块也有return,则此代码肯定会返回finally执行的r…

java jdbc mysql url_java – 如何生成JDBC数据库URL?

我今天已经研究了大约3个小时,我觉得我很接近,但我有几个问题.我到目前为止找到的最好的信息来源是:https://stackoverflow.com/a/2840358,但它没有回答我的所有问题.一点背景:我正在使用Microsoft SQL Server 2014,并且我已经验证了IP地址127.0.0.1处于…

try catch finally 中包含return的几种情况,及返回结果

第一种情况:在try和catch中有return,finally中没有return,且finally中没有对try或catch中要 return数据进行操作的代码,这种情况也是最好理解的。 public class Test {public static int num1;public static void main(String[] …

java jp2launcher.exe_芯科cp2112有熟悉的吗?配置不能保存是什么原因?

文件夹PATH列表卷序列号为2474-602AC:.├─CP2112_SDK│ │ ReleaseNotes.txt│ ││ ├─Documentation│ │ ├─ApplicationNotes│ │ │ an495.pdf│ │ │ an496.pdf│ │ ││ │ ├─Datasheets│ │ │ CP2112.pdf│ │ ││ │ ├─Datash…

包装类的缓存问题

包装类的缓存问题 整型、char类型所对应的包装类,在自动装箱时,对于-128~127之间的值会进行缓存处理,其目的是提高效率。 缓存处理的原理为:如果数据在-128~127这个区间,那么在类加载时就已经为该区间的每个数值创建…

java中项目启动时加载_如何在项目启动时,加载或解析某配置文件

在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件、初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作。在工作中遇到了项目初始数…

Shiro介绍及主要流程

Shiro介绍及主要流程 什么是Shiro Apache Shiro是一个强大且灵活的开源安全框架,易于使用且好理解,撇开了搭建安全框架时的复杂性。 Shiro可以帮助我们做以下几件事: 认证使用者的身份 提供用户的访问控制,比如: 决定…

java数据库程序实例_Java连接各种数据库的实例大全

1、Oracle8/8i/9i数据库(thin模式)Class.forName(“oracle.jdbc.driver.OracleDriver”)。newInstance();String url“jdbc:oracle:thin:localhost:1521:orcl”;//orcl为数据库的SIDString user“test”;String password“test”;Connection conn DriverManager.get…

http的请求体body的几种数据格式

文章目录multipart/form-dataapplication/x-www-from-urlencodedrawbinarypostman中 Params和Body的区别multipart/form-data 以表单形式提交,主要是上传文件用它,在http中格式为 application/x-www-from-urlencoded 以键值对的数据格式提交 raw…

谷歌浏览器安装json格式化插件

谷歌浏览器安装json格式化插件 实际开发工作中经常用到json数据,那么就会有这样一个需求:在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。 比如,在谷歌浏览器中访问:http://jsonview.com/example.json 展现…

java 俄罗斯方块窗口_[代码全屏查看]-java 俄罗斯方块

[1].[代码] [Java]代码package com;import java.awt.Color;import java.awt.Graphics;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;import javax.swing.JFrame;import javax.swing.JPanel;public class Eluos extends JFrame{p…

vue3.0中使用Element-plus默认英文组件修改为中文

vue3.0中使用Element-plus默认英文组件修改为中文修改方法 说明:本方法Element-plus 1.0.2-beta.59 之前的版本可以,1.0.2-beta.59之后版本请看下一篇博客 1,引入element // ! element-plus vue3.0 import element from element-plus import element-…

在java中null的作用_在java中避免使用!= null有什么好处?

使用空集合或“空白”操作而不是null的主要优点是,大多数情况下,此类对象仍然可以在代码中工作而无需进一步修改.从本质上来说,空值更容易出错.请使用以下代码,例如:String[] names data.getNames();if (names ! null) {for (String name : names) {// Do stuff}}需…

新版Elemen Plus 国际化 1.0.2-beta.59(包含59)

根据官方文档可以找到解决办法。先来看一下官方文档内容 官方给出了两种方式。这里只研究第一种方式&#xff1a; <template><el-config-provider :locale"locale"><App /></el-config-provider> </template><script> import …

java开发亚马逊mws_GitHub - iotwlw/Amazon-MWS-SDK: 基于亚马逊MWS Java SDK 的封装

amazon-mws-java-sdk亚马逊MWS服务的Java-SDK封装安装在pom.xml中添加依赖top.guyi.amazonAmazon-MWS-SDK1.0.0.1依赖放在nexus私服中&#xff0c;并没有上传到中央仓库&#xff0c;所以请在pom.xml中加入仓库配置guyi-maple-nexushttp://nexus.guyi-maple.space/nexus/content…