- 浏览: 413517 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zyu67:
这个类运行不起来呀 这类如何导出数据呀
一个数据库连接Java工具类和数据迁移类 -
kobe7777:
你好,请问我想写个excelToExcel 另存一个excel ...
Jacob 另存为Word、Excel -
di1984HIT:
记录一下学习。
Eclipse 平台架构 -
di1984HIT:
鞋的不错啊。呵呵额
一个数据库连接Java工具类和数据迁移类 -
Jameslyy:
确认jacob dll是否已经放入系统路径,jacob版本不同 ...
Jacob 另存为Word、Excel
public class Sorting { /** * 冒泡 * 复杂度为O(n*n) * @param nums */ public static void bubleSort(int[] nums) { int len = nums.length; for (int i = 0; i < len - 1; i++) { for(int j=i+1;j < len; j++) { if(nums[i] > nums[j]) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; } } } } /** * 插入排序 * @param nums */ public static void insertSort(int[] nums) { // IllegalArgumentException for (int i = 1; i < nums.length; i++) { for (int j = i; j > 0 && nums[j - 1] > nums[j]; j--) { int t = nums[j]; nums[j] = nums[j - 1]; nums[j - 1] = t; } } } /** * 插入排序改进 * @param nums */ public static void insertSort2(int[] nums) { int len = nums.length; for (int i = 1; i < len; i++) { int t = nums[i]; int j = i; for (; j > 0 && nums[j - 1] > t; j--) { nums[j] = nums[j - 1]; } nums[j] = t; } } /** * 快速排序 * 对于随即数据序列的排序,快速排序已经是最好的排序算法了。 * 对于有序序列的排序,快速排序的效率是很低的,复杂度为O(n*n),这时用冒泡和插入排序反而很快 * 时间复杂度:O(n log n) * @param array * @param low * @param high */ public static void quickSort(int[] array, int low, int high) { if(low < high) { int n = quickPartition(array, low, high); quickSort(array,low,n); quickSort(array,n+1,high); } } private static int quickPartition(int[] array, int low, int high) { // 采用子序列的第一个元素为枢纽元素 int pivot = array[low]; while(low < high) { // 从后往前在后半部分寻找第一个小于枢纽元素的元素 while(low < high && array[high] >= pivot) { --high; } int t = array[low]; array[low] = array[high]; array[high] = t; // while(low < high && array[low] <= pivot) { ++low; } t = array[low]; array[low] = array[high]; array[high] = t; } return low; } public static void print(int[] array) { int index = 0; System.out.println("-----------------------"); for (int n : array) { System.out.print(n + ","); index++; if(index%20 == 0) System.out.println(); } } public static void testBubleSort(int[] array) { long time = System.currentTimeMillis(); bubleSort(array); long time2 = System.currentTimeMillis(); System.out.println("bubleSort:" + (time2 - time)); print(array); } public static void testInsertSort(int[] array) { long time = System.currentTimeMillis(); insertSort2(array); long time2 = System.currentTimeMillis(); System.out.println("insertSort:" + (time2 - time)); print(array); } public static void testArraysSort(int[] array) { long time = System.currentTimeMillis(); Arrays.sort(array); long time2 = System.currentTimeMillis(); System.out.println("Arrays.sort:" + (time2 - time)); print(array); } public static void testQuickSort(int[] array) { long time = System.currentTimeMillis(); quickSort(array, 0, array.length - 1); long time2 = System.currentTimeMillis(); System.out.println("quickSort:" + (time2 - time)); print(array); } public static void main(String[] args) { /* double a = Math.random() * 10; a = Math.ceil(a); int randomNum = new Double(a).intValue(); System.out.println(randomNum); */ Random random = new Random(); // System.out.println(random.nextInt()); // System.out.println(random.nextInt(999999999)); int len = 9000; int randomMax = 999999; int[] nums = new int[len]; for(int i=0;i<len;i++) { nums[i] = random.nextInt(randomMax); } //testBubleSort(nums); //testInsertSort(nums); //testArraysSort(nums); testQuickSort(nums); } // 打印结果: // bubleSort:3203 // insertSort:1078 // Arrays.sort:31 // quickSort:16 // 不同机器,结果也会不同,但是结果数据的差距大致差不多,可以看出快速排序方法是最快的, // 比库函数还要快上一倍,比起 冒泡和插入排序,根本不在一个数量级上! // 不过也有特殊情况,如果待排序数据存在有序数据,快速排序就不如冒泡和插入排序了!
评论
4 楼
Jameslyy
2010-08-17
java 的库函数,Arrays.sort() 的实现是区分数组大小的,如果很小(小于7)采用的是插入排序,如果比较大,则采用快速排序,但是根据又根据数组的大小用不同的方法获取第一个比较元素。
3 楼
Jameslyy
2010-07-23
冒泡排序、插入排序时间复杂度为 n*n
快速排序时间复杂度为 n * log n,最坏时间复杂度为 n*n(有序数组)
超大数据的排序适合使用堆排序,堆排序具有空间复杂度。
快速排序时间复杂度为 n * log n,最坏时间复杂度为 n*n(有序数组)
超大数据的排序适合使用堆排序,堆排序具有空间复杂度。
2 楼
Jameslyy
2010-07-23
快速排序:选择数组的第一项A,倒序比较数组的其余项,找到第一个小于第一项A的项B,假如B的下标为high,置换它们的值,再倒序比较数组下标小于high的项,找到大于第一项A的项C,假如C的下标为low,置换它们的值,以low为分界把数组分为两个部分,分别对它们做上述操作,最终完成数组的排序。
1 楼
Jameslyy
2010-07-22
冒泡排序:把数组中每一项和其后面的项进行比较,如果是大于(顺序的情况,如果是倒序,则条件为小于),则把它们的值置换。需要两层循环比较,复杂度为 n*n 。
插入排序:从第二项开始,把数组每一项插入到已经排序的数组部分,第二项将会和第一项比较,如果小于(顺序)第一项,则置换它们的值,第三项则将会和已经排序的第一项和第二项组成的数组的每一项进行比较,直到找到合适的位置,并进行置换,以此类推。
待续...
插入排序:从第二项开始,把数组每一项插入到已经排序的数组部分,第二项将会和第一项比较,如果小于(顺序)第一项,则置换它们的值,第三项则将会和已经排序的第一项和第二项组成的数组的每一项进行比较,直到找到合适的位置,并进行置换,以此类推。
待续...
发表评论
-
CAP, CIAD 和 BASE
2014-11-20 16:29 12571. CAP 分布式领域CAP理论: Consi ... -
Git 常用命令
2014-07-31 16:00 10391. git clone 项目,从git远程代码库clon ... -
网络通信中间件
2013-10-24 00:34 1480ZeroC Ice http://www.zeroc.c ... -
Cherrypy ——one simple Python web framework
2009-10-29 17:31 2099Cherrypy http://www.cherrypy.o ... -
GIT
2009-10-27 15:45 1350GIT Git 是用于 Linux 内核开发的版本控制工 ... -
Memcached
2009-10-27 15:33 1807Memcached http://www.dang ... -
Apache Portable Runtime
2009-05-14 15:35 1623在调试一个项目时,注 ... -
Lighttpd
2009-05-11 15:26 1376Lighttpd 是由德国人 Jan Knes ... -
Google App Engine for Python Trying
2009-04-11 01:11 1316尝试了 Google App Engine for ... -
iText
2009-03-24 01:25 1432iText http://www.lowagie.com/i ... -
正则表达式
2009-02-24 22:02 12651, . 匹配任何一个单个字符 2, [ ] 匹配字符 ... -
Ubuntu 8.10 安装
2008-11-01 03:08 3713已经通过wubi这个小工具在硬盘直接安装了Ubun ... -
硬盘安装 Ubuntu
2008-10-27 00:07 1450网上有一个流行的方法,是使用GRUB4Dos这个工 ... -
Memcached
2008-07-06 12:03 2038Memcached是一个高性能的分布式的 ... -
你的灯亮着吗?
2008-06-30 15:27 1474Gerald M. Weinberg 杰 ... -
GIS 资源
2008-02-22 11:18 2068使用ArcGIS Engine 开发自定义GIS应用 h ... -
jQuery 和 XStream
2007-12-17 11:15 1510jQuery jQuery是JavaScript语言的一个 ... -
XML和XSLT
2007-09-17 23:22 1850XML: Extensible Markup Language ... -
UML和Agile
2007-09-02 23:34 2083这两天又看了一些UML方面的东西,很多东西并没有在项目中频繁的 ... -
敏捷开发和学习
2007-08-30 10:49 2021看了坛子里各位高人关于敏捷开发、项目管理方面的高论, ...
相关推荐
基于transUnet和swinUnet的医学图像分割项目实验对比,包含完整代码,可以一键运行。评估指标包括dice、iou、recall、precision等
,stm32f030无感foc方案,资料包括原理图,pcb,源程序,观测器参数,电流环参数计算表格。
分布式电源DG选址定容优化及帕累托最优解集的粒子群算法研究,多目标粒子群算法 分布式电源 DG 定容选址 网损 成本 电压偏差 通过分布式能源的选址定容确定得到帕累托最优解集,然后选择最优值进行分析,程序采用改进粒子群算法, ,核心关键词:多目标粒子群算法; 分布式电源选址定容; 网损; 成本; 电压偏差; 帕累托最优解集。,改进粒子群算法在分布式电源选址定容中的应用:优化网损与成本,考虑电压偏差
交变磁场感应材料对沥青路面温度影响的研究,交变磁场下含感应材料沥青路面温度 ,交变磁场; 感应材料; 沥青路面; 温度; 变化; 加热效率,交变磁场对含感应材料沥青路面温度的影响研究
基于Comsol模拟的三层顶板随机裂隙浆液扩散模型:考虑重力影响的瞬态扩散规律分析,Comsol模拟,考虑三层顶板包含随机裂隙的浆液扩散模型,考虑浆液重力的影响,模型采用的DFN插件建立随机裂隙,采用达西定律模块中的储水模型为控制方程,分析不同注浆压力条件下的浆液扩散规律,建立瞬态模型 ,Comsol模拟; 随机裂隙浆液扩散模型; 浆液重力影响; DFN插件; 达西定律模块储水模型; 注浆压力条件; 浆液扩散规律; 瞬态模型,Comsol浆液扩散模型:随机裂隙下考虑重力的瞬态扩散分析
对于Sqlserver数据库只是提供了简单的图形化的导出导入工具,在实际的开发和生产环境不太可能让用户在图形化的界面选择移行的对象,进行移行。 我们在数据库的移行中也遇到这种问题,需要提供一个工具给客户使用。所以我们开发了针对SQLServer数据库的cmd形式导入导出的工具。在长期的实践中不断完善,基本可以实现Oracle的导入导出工具的80%的功能,也比较的稳定。有需要的可以下载使用,也可以提供定制化的服务
内容概要:本文介绍了DeepSeek模型在不同平台上部署的方法。首先阐述了基于Ollama的本地部署,包括Ollama的安装、模型拉取以及交互模式的使用。接着讲解了DeepSeek在移动设备(iOS和Android)上的部署细节:iPhone需要通过Safari安装快捷指令,配置API Key并通过快捷指令测试运行;Android则借助Termux安装必要组件,并手动搭建Ollama环境以加载和测试模型。最后详细叙述了基于Open WebUI部署的方式,涉及Ollama、Docker Desktop及Open WebUI的安装流程及其之间的配合使用来最终达成模型的成功部署。 适用人群:面向有兴趣了解或者实际操作DeepSeek模型跨平台部署的技术开发者、研究人员以及AI爱好者。 使用场景及目标:适用于希望利用DeepSeek模型快速构建本地化应用程序、开展实验研究的用户;具体目标为掌握DeepSeek模型在桌面系统(如Linux、macOS、Windows)、iOS和Android智能手机以及云端WebUI界面上的不同部署手段和技术。 其他说明:对于每种类型的部署都提供了详细的步骤指导,旨在帮助使用者顺利完成所需工具和环境的安装,并确保模型能够正常工作。文中给出的具体链接和命令行脚本,有助于降低初次接触者的上手难度,提升部署效率和成功率。此外,还强调了一些重要的配置注意事项,例如正确输入API key以及对Ollama的初始化检查等。
,FOC 无感 混合磁链观测器 电机控制 代码 PMSM MiniDD(直驱)电机变频无感程序,包含偏心,重量,共振等感知算法,所有算法都不基于库函数,MCU底层配置完全手写
nodejs010-nodejs-cmd-shim-1.1.0-4.1.el6.centos.alt.noarch.rpm
基于S7-200 PLC的交通灯倒计时控制及组态王界面实现原理图解析,S7-200 PLC和组态王交通灯带倒计时控制 923 47 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,S7-200 PLC; 交通灯; 倒计时控制; 组态王; 梯形图接线图; IO分配; 组态画面,"S7-200 PLC与组态王交通灯倒计时控制:梯形图原理及IO分配详解"
西门子四轴卧加后处理系统:828D至840D兼容,四轴联动高效加工解决方案,支持图档处理及试看程序。,西门子四轴卧加后处理,支持828D~840D系统,支持四轴联动,可制制,看清楚联系,可提供图档处理试看程序 ,核心关键词:西门子四轴卧加后处理; 828D~840D系统支持; 四轴联动; 制程; 联系; 图档处理试看程序。,西门子四轴卧加后处理程序,支持多种系统与四轴联动
FPGA篮球赛事24秒倒计时计时器设计与实现(基于Verilog与VHDLL的优化对比),基于fpga篮球倒计时24s。 verilog和vhdl两个版本 ,基于FPGA篮球倒计时24s; Verilog版本; VHDL版本,FPGA篮球比赛倒计时24秒系统:Verilog与VHDL双版本实现
论生成式AI在大学生学习中的应用与伦理问题.pdf
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"S7-200plc与MCGS智能居家控制系统的深度融合:组态画面、IO分配与梯形图接线图原理详解",No.63 S7-200plc和 MCGS智能居家控制系统组态 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,核心关键词:S7-200plc; MCGS智能居家控制系统; 梯形图接线图原理图; io分配; 组态画面。,"S7-200 PLC与MCGS智能居家系统组态及梯形图原理图解析"
方便暖通工程师及板换用户了解艾齐尔板式换热器选型计算,免费使用。
《四层三列堆垛式立体库控制系统:带解释的梯形图接线原理图及IO分配与组态画面详解》,4x3堆垛式立体库4层3列四层三列书架式立体库控制系统 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,立体库; 堆垛式; 控制系统; 梯形图; 接线图; 原理图; IO分配; 组态画面,"立体库控制系统原理图:四层三列堆垛式书架的IO分配与组态画面"
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx