社区
Java SE
帖子详情
请问下面这种排序想法怎么实现啊?谢谢!
secondflying
2005-08-02 04:38:19
数组A中有N个数,想从大到小排序,将排好后的数放到数组B中,同时要记录B数组中的索引和A数组中的索引的关系,放在数组C中,也就是B中从大到小的一系列数在原数组中的位置!
比较笨,想不出来,只好到这里来求救了!谢谢各位大侠了!
...全文
92
3
打赏
收藏
请问下面这种排序想法怎么实现啊?谢谢!
数组A中有N个数,想从大到小排序,将排好后的数放到数组B中,同时要记录B数组中的索引和A数组中的索引的关系,放在数组C中,也就是B中从大到小的一系列数在原数组中的位置! 比较笨,想不出来,只好到这里来求救了!谢谢各位大侠了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
secondflying
2005-08-04
打赏
举报
回复
谢谢(华仔) 兄
rower203
2005-08-02
打赏
举报
回复
public static void main(String []args)
{
int[] a ={4,6,2,9,5,21,7,23,43,34,11,1};
int[] b = (int[]) a.clone();
int[] c = new int[b.length];
QuickSort qs = new QuickSort();
c = qs.getIndexArray(c);
b = qs.quickSort(b, c, 0, b.length-1);
qs.printResult(a, "a: ");
qs.printResult(b, "b: ");
qs.printResult(c, "c: ");
}
a: 4 6 2 9 5 21 7 23 43 34 11 1
b: 1 2 4 5 6 7 9 11 21 23 34 43
c: 11 2 0 4 1 6 3 10 5 7 9 8
rower203
2005-08-02
打赏
举报
回复
public class QuickSort {
public int[] quickSort(int[] data, int[] c, int leftP,int rightP)
{
int i = leftP;
int j = rightP;
if(i < j){
do {
// printResult(data, "now: ");
while(data[i] < data[leftP] && i < j){
i++;
}
while(data[j] > data[leftP] && j > i){
j--;
}
if(i < j){
exchangeData(data, c, i, j);
}
if (i == j) {
if (data[j] > data[leftP]){
j--;
}
exchangeData(data,c , j, leftP);
}
} while(i < j);
if (j > ++leftP){
quickSort(data, c, leftP, --j);
}
if (j < rightP - 1){
quickSort(data, c, ++j, rightP);
}
}
return data;
}
private int[] getIndexArray(int[] c){
for(int i = 0; i < c.length; i++){
c[i] = i;
}
return c;
}
private void exchangeData(int[] data, int[] c, int a, int b){
int tmp = data[a];
data[a] = data[b];
data[b] = tmp;
tmp = c[a];
c[a] = c[b];
c[b] = tmp;
}
public void printResult(int[] data, String msg){
System.out.print(msg);
for(int i = 0; i < data.length; i++)
{
System.out.print(" " + data[i] + " ");
}
System.out.println("");
}
public static void main(String []args)
{
int[] data={4,6,2,9,5,21,7,23,43,34,11,1};
int[] b = (int[]) data.clone();
int[] c = new int[b.length];
QuickSort qs = new QuickSort();
c = qs.getIndexArray(c);
qs.printResult(data, "Before Quick Sorting: ");
data = qs.quickSort(data, c, 0, data.length-1);
qs.printResult(data, "After Quick Sorting : ");
qs.printResult(b, "b: ");
qs.printResult(c, "c: ");
}
}
是从小到大的顺序排的,要改一下.
[JS真好玩] 表格不支持
排序
?用4行JS
排序
!两种方案:基于flex order或replaceChildren
有的表格不支持按某列
排序
,我提出了2个方法,使用JS修改Dom
实现
排序
:基于flex order样式、基于Element.replaceChildren()这个API,分别只需7行和4行代码。
ps167种技巧
ps167种技巧这个有人发过么?如果有人发过请版主给我保留一天好么?
谢谢
!!photoshop 167种技巧1、快速打开文件 双击Photoshop的背景空白处(默认为灰色显示区域)即可打开选择文件的浏览窗口。 2、随意更换画布颜色 选择油漆桶工具并按住Shift点击画布边缘,即可设置画布底色为当前选择的前景色。如果要还原到默认的颜色,设置前景色为25%灰度(R192,G192,B192)再次按住
高自由度:c++八大
排序
算法
实现
代码和原理
网上有很多八大
排序
的代码,不过那都比较简约,只是想表明算法原理。当然也有个人的博客写的也是很好的。我写的八大
排序
算法有以下几个特点: 1、只要改变一个数值,就能
实现
从小到大或从大到小的
排序
。 2、改变一个N的值可以随便改变
排序
数组的元素的多少。 3、
排序
适合int、long、float、double、char类型的
排序
,只要改变一个ArrayType的类型就行。 4、八大
排序
中,有些都是改
【数据结构与算法】——
排序
算法篇
由于研究生考试的需要,加上我对算法的情有独钟,这段时间一直在研究算法。跟大家分享一些我的经验和
想法
:一、欢迎大家批评指正我错误的地方;二、欢迎大家补偿自己的见解进来,我如果发现有独到见解的评论,我会编辑添加到文章中来,并注明。希望给大家带来好的知识分享! 为什么我们需要
排序
?存放数据就像我们在日常生活中存放东西一样,时不时需要整理一下,你下次拿东西的时候才方便。如果你的东西是一堆乱麻
【每日算法】计数&基数&桶&位图
排序
-简介
在前面的文章中,我们介绍的都是基于比较的
排序
。对于比较
排序
,对含n个元素的序列进行
排序
,在最坏情况下都要用O(n logn)次比较(归并
排序
和堆
排序
是渐近最优的)。本文将继续介绍以线性时间运行的
排序
算法,他们使用的是非比较
排序
,因此下界O(n logn)对它们不适用。计数
排序
想象
下面
这种
情况:一个班有k个人,需要排成一条纵队,地面上已经用粉笔按从小到大的顺序标明了1到k个号码,要求按身高从低到高排列
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章