java数据透视表算法_java – 在数据透视表上对数组进行分区
我试图编写一个简单的算法来移动枢轴周围的元素,使得枢轴左侧的元素小于枢轴,并且枢轴右侧的元素大于它(快速排序中的相同步骤).我编写了可行的代码,但之后我将算法更改为以下内容,但它无效.
算法的想法很简单.
Have two pointers, one at the beginning of the array and one at the end of array. If the elements pointed by i are lesser than pivot, keep skipping it until we find a greater element; and keep decrementing j until we find an element greater than the smaller element. [It is a common algorithm]
现在的代码
private static void sortByPivot(int[] a)
{
Random r = new Random();
int index = r.nextInt(a.length);
int pivot = a[index];
System.out.println("pivot = " + pivot);
int i =0 , j = a.length -1;
while(true)
{
while(a[i] <= pivot) i++;
while( j >0 && a[j] >= pivot) j--;
if(i <= j)
{
break;
}
else{
swap(a,i,j);
}
}
swap(a,i,index); //swap the pivot and the i
}
交换例程:
private static void swap(int[] a, int i , int j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
当我使用以下数组运行它时
int[] a = {46,3,8,4,2,6,244,76}
当枢轴被选为4时
输出是
4 3 8 46 2 6 244 76
对于边缘的其他一些枢轴,我得到一个空指针异常.
实施中是否存在任何缺陷.逻辑对我来说似乎是正确的.我已经尝试了很长一段时间,但我无法解决它.
最佳答案 检查这个
implementation.它完全按照相同的原则工作.尝试比较,看看你哪里出错了.
请注意,如果i <= j并且也从循环中断,则应该交换a [i]和[j]的值.你是在else上做的,这是错误的,因为如果a [i]大于枢轴并且当你到达if时a [j]小于枢轴,那么如果i< = j.
java数据透视表算法_java – 在数据透视表上对数组进行分区相关推荐
- java导出为excel文件_java导出数据到excel文件
有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...
- Java根据表格生成图_java绘制数据表格并导出为图片格式
/*** @Description : 导出图片 *@param: * *@return: * 2020-04-23*/ public void actionExportReport(HttpServ ...
- java 线性表定义_Java数据结构的线性表是怎样的
Java数据结构--线性表的顺序存储实现 一.描述 线性结构特点: (1)存在唯一的一个被称作"第一个"的数据元素 (2)存在唯一的一个被称作"最后一个"的数据 ...
- java如何给顺序表赋值_JAVA模拟新增顺序表及单链表
最近在回顾大学学的数据结构,这里给大家用javwww.cppcns.coma模拟顺序表和单链表的新增 1顺序表新增 /** * 顺序www.cppcns.com表 * * @author cjd * ...
- java中字符串的算法_Java中的字符串搜索算法
我正在使用大量数据进行字符串匹配. 编辑:我正在匹配一个大列表中的单词与一些本体文本文件.我从本体中获取每个文件,并搜索每个文件行的第三个字符串与列表中的任何单词之间的匹配. 我在监督这样一个事实上犯 ...
- 哈希表数据结构_Java数据结构哈希表如何避免冲突
前言 一.哈希表是what? 这是百度上给出的回答: 简而言之,为什么要有这种数据结构呢? 因为我们想不经过任何比较,一次从表中得到想要搜索的元素.所以就构造出来了哈希表,通过某种函数(哈希函数)使元 ...
- 使用java如何访问报表服务器_Java访问远程http服务器上数据的简便方法
Java开发项目中,有时会访问远程http服务器上的数据,数据可能是xml格式或者json格式等.这里我们通过例子来看一下两种实现方式的对比. 本例子中有一个servlet,对外提供json格式的雇员 ...
- java从入门到精通_Java大数据:数据库开发从入门到精通
在Java大数据开发任务当中,数据存储是非常关键的一环,涉及到分布式文件系统.分布式数据库,数据库是后端系统当中支持数据存储的重要组件.今天我们就来聊聊Java大数据,数据库开发从入门到精通,应该如何 ...
- java 导出word 带格式_java 导出数据为word文档(保持模板格式)
导出数据到具体的word文档里面,word有一定的格式,需要保持不变 这里使用freemarker来实现: ①:设计好word文档格式,需要用数据填充的地方用便于识别的长字符串替换 如 aaaaa ...
最新文章
- 如何用一句话得罪 95% 的中国人?昨天这家公司做到了...
- CODE FESTIVAL 2017 qual B
- php提示密码错误的代码_php 实现密码错误三次锁定账号10分钟
- JQuery的插入操作滚动条显示返回顶部
- 在阿里云上进行Docker应用的自动弹性伸缩
- Mysql的select in会自动过滤重复的数据
- 黑马程序员---交通灯管理系统
- php eval 安全性,php – 使用eval解析表单输入的方程式的最安全的方法
- PostgreSQL update tbl1 from tbl2 一对多的注意事项(到底匹配哪条)
- 在布局空间标注的尺寸量不对_CAD解决布局标注尺寸不对问题 及快捷键混乱问题...
- sqlserver 分组合并列_[雅思经验]?两个月备考,一战雅思7.5分经验分享!!!
- mes系统服务器连接失败,mes系统如何连接其他系统设备?
- 适配各种Windows分辨率,为DPI添加感知,当在高DPI时,禁用WINFORM缩放等。
- 减法公式运算法则_减法的运算法则
- ●UVA 11021 tunnello
- Android 传感器分类
- springboot框架下的实时消息推送
- Android加载PDF文档
- 学习Android:第一个app《hello word》
- 【机器学习基石】机器学习的种类(三)