A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛祖华 中级黑马   /  2012-3-16 17:19  /  1902 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

赵孟恩 发表于 2012-3-16 17:23
在排序方法中 3和3 是进行比较的, 只是看你怎么处理大小关系了  if(a >b )不执行if里面的语句  或 if(a> ...

不是你说的那种比较,同学,你没明白我的意思。。。
回复 使用道具 举报
在数列排序中,如果有相同的元素,如何确定相同元素的前后顺序?例如:{4,3,9,17,2,3,16,8,44,11} 如何确定两个3 的位置?有啥区别?

5 个回复

倒序浏览
在排序方法中 3和3 是进行比较的, 只是看你怎么处理大小关系了  if(a >b )不执行if里面的语句  或 if(a>=b)执行if里面的语句   。 其实不用执行了
回复 使用道具 举报
本帖最后由 赵孟恩 于 2012-3-16 18:14 编辑
盛祖华 发表于 2012-3-16 17:58
不是你说的那种比较,同学,你没明白我的意思。。。


排序 求最值 不都得比较吗   通过比较才能确定位置啊
回复 使用道具 举报
你可以遍历数组:for(int x=0;x<arr.length;x++){if(arr[x]==3)return x;}得到第一个3的位置;
再来一次:for(int x=1/*上一个循环得到的角标值*/;x<arr.length;x++){if(arr[x]==3)return x;}得到第二个3的位置;
不知道楼主是不是这个意思
回复 使用道具 举报
可用二分法收索

int[] ar={4,3,9,17,2,3,16,8,44,11};

int i=Arrays.binarySearch(ar,3);//获得第一个3的位置
int i2=Arrays.binarySearch(ar,i+1,ar.length,3);//获得第二个三的位置
                              
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马