Java 一维数组排序,排完序后输出最小值,并且要得到最小值在原一维数组的下标(也就是顺序)这是关键

关键是要得到最小值在原一维数组的下标... 关键是要得到最小值在原一维数组的下标 展开
 我来答
chenxing076104
2012-02-28 · TA获得超过546个赞
知道答主
回答量:82
采纳率:100%
帮助的人:57万
展开全部
一位数组是确定的 在排序前把最小值和下标输出来 排序后再把最小值和下标输出来 因为最小值是确定的 排序前的下标不是就有了吗
public class BubbleSort {
public static void main(String[] args) {
int[] values = { 3, 1, 6, 2, -3,9, 0, 7, -2,4, 5 ,8};
int minPre = values[0];
int flagPre = 0 ;
for (int i = 0; i < values.length; i++) {
if(minPre>=values[i]){
minPre = values[i];
flagPre = i;
}
}
System.out.println("排序前 最小值:"+minPre+ " 原下标:"+flagPre);
sort(values);
for (int i = 0; i < values.length; i++) {
if(minPre>=values[i]){
minPre = values[i];
flagPre = i;
}
}
System.out.println("排序后 最小值:"+minPre+ " 现下标:"+flagPre);
}

public static void sort(int[] values) {
int temp;
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values.length - 1; j++) {
if (values[j] > values[j + 1]) {
temp = values[j];
values[j] = values[j + 1];
values[j + 1] = temp;
}
}
}
}
}
结果:
排序前 最小值:-3 原下标:4
排序后 最小值:-3 现下标:0
flyingFish211
2012-02-28 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) {

int[] ary = {1, 3, 2, 18, 39, -5, 33, -5, -5};

int min = ary[0];
List<Integer> indexList = new ArrayList<Integer>();

for(int i = 0; i < ary.length; i++){
if(ary[i] < min){
min = ary[i];
indexList.clear();
indexList.add(new Integer(i));
}else if(ary[i] == min){
indexList.add(new Integer(i));
}
}

System.out.println("Min item of the array is: " + min);
System.out.print("Index list: ");
for(int value: indexList){
System.out.print(value + " ");
}

//排序
Arrays.sort(ary);

}

}

--------------testing
Min item of the array is: -5
Index list: 5 7 8
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仲夏灬夜之雨
2012-02-28 · TA获得超过516个赞
知道小有建树答主
回答量:132
采纳率:100%
帮助的人:85.8万
展开全部
public class ArraysTest {

public static void main(String[] args) {
int[] arys={32,43,1,2,5,6,7,23,45,67};
int min=sortAndFindMin(arys);
int min_index=findIndexOfMin(min, arys);
System.out.println("Min:"+min+" index of min :"+min_index);
}
/**
* 查找数组中的最小值
* @param arys
* @return min of arys
*/
private static int sortAndFindMin(int[] arys){
for (int i = 0; i < arys.length; i++) {
for (int j = 0; j < arys.length-1; j++) {
if(arys[j]>arys[j+1]){//>号是从小到大,反之从大到小
int c=arys[j+1];
arys[j+1]=arys[j];
arys[j]=c;
}
}
}
System.out.println(java.util.Arrays.toString(arys));
//数组排序后打印
return arys[0];//从小到大下标最小的就是最小值,反之arys[arys.length-1]为最小值
}
/**
* 查找在数组中的下标,有则返回,没有返回-1
* @param min
* @param arys
* @return index
*/
private static int findIndexOfMin(int min,int[] arys){
for (int i = 0; i < arys.length; i++) {
if(arys[i]==min){
return i;
}
}
return -1;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjlovett11
2012-02-28 · TA获得超过102个赞
知道答主
回答量:164
采纳率:100%
帮助的人:86.7万
展开全部
public class Test3 {
public static void main(String args[]){
int str[]={5,2,3,4,5,6,7};
int a=str[0];
int i;
for(i=0;i<=6;i++){
if(a>=str[i]){
a=str[i];
}
}
System.out.println(a);
for(i=0;i<=6;i++){
if(a==str[i]){
System.out.println(i);
}
}
}

}
先求出最小值 在用最小值与原数组进行比较 得到数组输出下标
这只是一个思路 具体问题自己再更改一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
穿越時代之幻想
2012-08-10
知道答主
回答量:21
采纳率:0%
帮助的人:5.6万
展开全部
public class SlimpleArray {
public static void main(String[] args) {
int [] arr={88,77,55,26,54,66,48};
int max=0;
int Min=arr[0];
for(int i=0;i<arr.length;i++){

Min=Math.min(arr[i], Min);
max=Math.max(arr[i], max);

}
System.out.println("max="+max);
System.out.println("min="+Min);}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式