快速排序-不稳定排序怎么才能正确使用它?

问题描述

不稳定排序怎么才能正确使用它?

既然快速排序是不稳定的,为什么java语言还要使用快速排序?不稳定排序怎么才能正确使用它?

解决方案

不稳定排序是说,如果待排序的两个数字一样大,那么,排序完后这两个数字谁在前不一定。不是说不稳定排序会出现不正确的结果。快速排序经过稍微改造,也可以变成稳定排序——只要在排序前记录下原始的元素顺序,并且在比较的时候作为第二条件就可以。
java不是很确定,但是.net中,系统类库提供的快速排序是稳定的。

时间: 2024-09-14 01:47:03

快速排序-不稳定排序怎么才能正确使用它?的相关文章

求助大神,这个matlab程序如何修改才能正确运行?

问题描述 求助大神,这个matlab程序如何修改才能正确运行? function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P) %-------------------------------------------------------------------------- %??JSPGA.m %??流水线型车间作业调度遗传算法 %??GreenSim团队原创作品,转载请注明 %??Email:greensim@163.com %??Green

图像处理-Surfacelet变换的工具包在matlab下如何才能正确运行

问题描述 Surfacelet变换的工具包在matlab下如何才能正确运行 下了一个surfbox,在matlab下运行出错,希望以前用过的人指导下 解决方案 首先,你的系统必须是32位的,然后可以参照这个网页http://bbs.csdn.net/topics/320033034

源代码-如何c++编程产生白盒测试数据,遍历插入排序,快速排序合并排序的每条分支语句,并输出便历结果

问题描述 如何c++编程产生白盒测试数据,遍历插入排序,快速排序合并排序的每条分支语句,并输出便历结果 如题,想知道会用到什么库函数,该怎么编写语句,用什么算法,如果可以提供一段简单的源代码供参考 解决方案 白盒测试就是阅读代码,编写测试用例,覆盖所有分支,和编写代码无关.

关于快速排序,但是结果不正确,求大神解答,java编写

问题描述 关于快速排序,但是结果不正确,求大神解答,java编写 public class QuickSort { public static void main(String[] args){ int[] a={12,22,11,3,13,45,6,33,22,5,6,2,1,12}; show(a); sort(a, 0, a.length - 1); show(a); } public static void show(int a[]){ for(int i=0;i<a.length;i+

JS实现冒泡排序,插入排序和快速排序并排序输出_java

在一次面试中被问到了此问题,但是真是懵了,没能回答上来,后来通过JS整理了一下,在结合html代码做了一个文本框,把输入的内容从文本框排序输出,再次不做叙述了,下面通过一段代码给大家展示下: 以下是代码: index.html <!DOCTYPE html> <html> <head> <title>Sorting</title> <link rel="stylesheet" type="text/css&qu

内嵌汇编与C/C++实现的冒泡排序,快速排序算法排序500W个数据对比

内嵌汇编是微软为了提高程序的直接操作硬件能力,以及实现大任务程序效率的提高,而嵌入在VC中的,他不依赖于汇编器对内嵌汇编代码进行汇编,这些内嵌汇编代码由C编译器内部实现,可以使程序好像自陷到汇编状态一样.这意味着你如果在C/C++程序中使用了 inline  asm进行 汇编 那么 就注定无法跨平台的,对于没有汇编基础的同学是需要去学习下王爽的8086汇编程序设计.,因为有些时候C++程序员是不得不懂这些东西的 ,否则你永远无法知道编译器为你的函数做了什么,.你还有哪些地方需要优化, 不管处于什

Qt之QHeaderView自定义排序(获取正确的QModelIndex)

简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题...比如:获取QModelIndex索引错误. 下面,我们先来实现一个整行选中的效果. 简述 错误处理 效果 源码 分析 正常处理 效果 源码 错误处理 效果 下面是一个非正常的的效果,选中当前行会造成更新错误,Why? 源码 // 连接信号槽 connect(pTableView, SIGNAL(clicked(QModelIndex)), this, SLOT(onC

怎么才能正确配置 Tomcat

问题描述 安装完了,也配置过了!但运行程序时,提示说可能是classpath或者java_home设置出错!我的Java安装在D:Java目录里!

如何才能正确的关闭Socket连接

从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接:还有一种则是异常关闭,我们通常称之为连接重置(RESET).首先说一下正常关闭时四次挥手的状态变迁,关闭连接的主动方状态变迁是FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT,而关闭连接的被动方的状态变迁是CLOSE_WAIT->LAST_ACK->TIME_WAIT.在四次挥手过程中ACK包都是协议栈自动完成的,而FIN包则必须由应用层通过closesocket或sh