随机产生一组数组 按从大到小排列用JAVA怎么做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机产生一组数组 按从大到小排列用JAVA怎么做相关的知识,希望对你有一定的参考价值。
可用Math.random()来产生随机数,如int[] number = new int[12000];
for (int i = 0;i<number.length;i++)
number[i] = (int)(Math.random()*100+1);
至于排序,方法太多了,选择排序:
public class SelectionSort
public staic void sort(int[] a)
for (int i = 0;i<a.length -1;i++)
int index = locateNextMaxNumlber(a,i);
exchange(a,i,index);
public static int locateNextMaxNumber(int[] a,int sta)
int staNum = a[sta],staIndex = sta;
for (int i = sta+1;i<a.length,i++)
if(a[i] > staNum)
staIndex = i;
staNum = a[i];
return staIndex;
public static void exchange(int[] a,int i,int j)
int temp = a[i];
a[i] = a[j];
a[j] = temp;
然后就可调用selectionSort.sort(number)来排序; 参考技术A Math。random()产生随机数
java.util.Arrays包中的public static void sort(double[] a)方法来排序最简单了
也可以用选择、冒泡、插入、shell法,等来排序 参考技术B 简单,我来回答。
有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”
//2017年7月22日 #include <stdio.h> #define LEN 15 int main(){ int n; void binSearch(int * p,int n); int arr[LEN]={98,97,88,87,76,70,65,54,43,42,39,36,35,31,29}; printf("请输入要查找的数:\n"); scanf("%d",&n); binSearch(arr,n); return 0; } void binSearch(int * p,int n){ int low,high,mid; low=0; high=LEN-1; while(low<=high){ mid=(low+high)/2; if(p[mid]==n) {printf("%d是数组的第%d个元素的值(下标从0开始)\n",n,mid); break;//注意找到该元素之后,就结束循环 } else if(p[mid]>n) low = mid+1; else high = mid-1; } if(low>high) printf("数组中无此数"); }
以上是关于随机产生一组数组 按从大到小排列用JAVA怎么做的主要内容,如果未能解决你的问题,请参考以下文章
将数组8,23,4,16,77,-5,53,100中的元素按从大到小的顺序排列,最少需要交换几次?我知道答案是5次