5个回答
展开全部
一位数组是确定的 在排序前把最小值和下标输出来 排序后再把最小值和下标输出来 因为最小值是确定的 排序前的下标不是就有了吗
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
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
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
}
}
}
先求出最小值 在用最小值与原数组进行比较 得到数组输出下标
这只是一个思路 具体问题自己再更改一下
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);
}
}
}
}
先求出最小值 在用最小值与原数组进行比较 得到数组输出下标
这只是一个思路 具体问题自己再更改一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);}
}
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);}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询