java怎么让数组的数字从大到小排序? java 输入任意几个数字,怎样将他们从大到小排序?
java\u6570\u7ec4\u4ece\u5927\u5230\u5c0f\u600e\u4e48\u6392\u5e8f\uff1fpackage test;import java.util.Arrays;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;import sun.org.mozilla.javascript.internal.NativeArray;public class Test3{public static void main ( String[] args ) throws ScriptException{int a[] = { 20, 10, 50, 40, 30, 70, 60, 80, 90, 100 };String temp = Arrays.toString (a);ScriptEngineManager sem = new ScriptEngineManager ();ScriptEngine se = sem.getEngineByName ("js");String function = temp + ".sort(function(a,b){if(a>b) return -1; else if(a<b) return 1; else return 0})";NativeArray array = (NativeArray) se.eval (function);for ( int i = 0; i < array.getLength (); i++ ){double x = (Double) array.get (i, null);if (x % 1 == 0){System.out.print ((int) x + " ");}else{System.out.print (x + " ");}}}}
public static void main(String[] args) { Scanner scan = new Scanner(System.in)\u3002
}System.out.println("\u4ece\u5927\u5230\u5c0f\u8f93\u51fa\uff1a");for (int m = num.length-1; m >=0; m--) {System.out.println(num[m]);//\u4ece\u5927\u5230\u5c0f\u8f93\u51fa}}
String[] str = scan.nextLine().split(" ")\uff0c// \u8f93\u5165\u65f6\u4ee5\u7a7a\u683c\u9694\u5f00\u6570\u5b57\u3002
int[] num = new int[str.length];//\u521d\u59cb\u5316\u4e00\u4e2a\u6574\u578b\u6570\u7ec4\uff0c\u957f\u5ea6\u4e3a\u4f60\u8f93\u5165\u6570\u5b57\u7684\u4e2a\u6570\u3002
String[] str = scan.nextLine().split(" ");// \u8f93\u5165\u65f6\u4ee5\u7a7a\u683c\u9694\u5f00\u6570\u5b57int[] num = new int[str.length];//\u521d\u59cb\u5316\u4e00\u4e2a\u6574\u578b\u6570\u7ec4\uff0c\u957f\u5ea6\u4e3a\u4f60\u8f93\u5165\u6570\u5b57\u7684\u4e2a\u6570for (int i = 0; i < str.length; i++) {num[i] = Integer.parseInt(String.valueOf(str[i]));//\u5c06\u5b57\u7b26\u8f6c\u6362\u4e3aint\u578b\u518d\u8d4b\u7ed9\u6574\u578b\u6570\u7ec4}Arrays.sort(num);//\u5347\u5e8f\u6392\u5e8fSystem.out.println("\u4ece\u5c0f\u5230\u5927\u8f93\u51fa\uff1a");for (int j = 0; j < num.length; j++) {System.out.println(num[j]);//\u4ece\u5c0f\u5230\u5927\u8f93\u51fa
将数字从大到小排序的方法:
例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。
示例代码如下:
public class Test {
public static void main(String[] args) {
int [] array = {12,3,1254,235,435,236,25,34,23};
int temp;
for (int i = 0; i < array.length; i++) {
for (int j = i+1; j < array.length; j++) {
if (array[i] < array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp; // 两个数交换位置
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java 语言中提供的数组是用来存储固定大小的同类型元素。
你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99
扩展资料
Java中利用数组进行数字排序一般有4种方法:
1、选择排序是先将数组中的第一个数作为最大或最小数,然后通过循环比较交换最大数或最小数与一轮比较中第一个数位置进行排序。
2、冒泡排序也是先将数组中的第一个数作为最大或最小数,循环比较相邻两个数的大小,满足条件就互换位置,将最大数或最小数沉底。
3、快速排序法主要是运用Arrays类中的Arrays.sort方法()实现。
4、插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。
冒泡排序
<span style="font-size:18px;">package test;
public class Maopao {
public static void main(String[] args) {
int[] array={1,2,5,3,10,21,0};
getSortD_X(array);
getSortX_D(array);
}
public static void getSortD_X(int[] array){
for (int i = 0; i < array.length; i++) { for(int j=0;j<array.length-1;j++){ if(array[i]>array[j]){
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
System.out.print("从大到小:");
for (int i = 0; i < array.length; i++) { if(i==array.length-1){
System.out.println(array[i]);
}else{ System.out.print(array[i]+",");
}
}
} public static void getSortX_D(int[] array){ for (int i = 0; i <array.length; i++) { for(int
j=0;j<array.length-i-1;j++){ if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.print("从小到大:");
for (int i = 0; i < array.length; i++) { if(i==array.length-1){
System.out.println(array[i]);
}else{ System.out.print(array[i]+",");
}
}
}
}</span>
运行最后输出
从大到小:21,10,5,3,2,1,0
从小到大:0,1,2,3,5,10,21
扩展资料:
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
参考资料:冒泡排序-百度百科
冒泡排序是最常用的数组排序算法之一,它排序数组元素的过程总是小数往前放,大数往后放,类似水中气泡往上升的动作,所以称作冒泡排序。如果我们要进行从大到小进行排序,只需要反过来操作即可,即把比较中教小的数往后排,较大数往前排。
示例代码如下:
public static void main(String[] args) {
int []array = {4,3,5,1,2}; //声明一个整型数组,并初始化
String str = "这几个数的排序为:"; //声明一个String类型的变量str,并初始化int temp; //声明一个整型变量
for(int j=array.length-1;j>0;j--) { //交换两个相邻的数
for(int i=0;i<j;i++){
if(array[i]>array[i+1]){
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
System.out.println(str);
for(int serial = 0;serial < array.length;serial++){
System.out.println(array[serial]); //打印数组
}
}
拓展资料:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java语言中虽然没有virutal关键字,但是使用虚方法的频率却远远大于C/C++语言,这意味着运行时对方法接收者进行多态选择的频率要远远大于C/C++语言,也意味着JIT编译器在进行一些优化,如方法内联时难度要远大于C/C++的静态优化编译器。
参考资料:百度百科-Java
代码如下:
/*
* 在键盘上输入N个整数,试编制程序使该数组
* 中的数按照从大到小的次序排列。
*/
package stuClass;
import java.util.Arrays;
import java.util.Scanner;
public class Test09 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入数组长度:");
int length=input.nextInt();
int[] result=new int[length];
System.out.println("请输入数组元素:");
for(int i=0;i<length;i++) {
result[i]=input.nextInt();
}
Test09 tt=new Test09();
tt.reverse(result, 0, length-1);
}
public void reverse(int[] nums,int start,int end) {
Arrays.sort(nums);
while(start<end) {
int temp=nums[start];
nums[start]=nums[end];
nums[end]=temp;
start++;
end--;
}
System.out.println(Arrays.toString(nums));
}
}
代码效果:
可以采用冒泡排序的方式代码如下所示:
public class Test {
public static void main(String[] args) {
int [] array = {10,3,1000,135,435,86,58,30,79};
int temp;
for (int i = 0; i < array.length; i++) {
for (int j = i+1; j < array.length; j++) {
if (array[i] < array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp; 让两个数交换位置 }
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");最后输出数据
}
}
}
绛旓細灏嗘暟瀛椾粠澶у埌灏忔帓搴忕殑鏂规硶锛渚嬪绠涓鐐圭殑鍐掓场鎺掑簭锛屽皢绗竴涓暟瀛楀拰鍚庨潰鐨勬暟瀛楅愪釜姣旇緝澶у皬锛屽鏋滃皬浜庯紝鍒欎簰鎹綅缃紝澶т簬鍒欎笉鍔銆傛鏃讹紝绗竴涓暟涓烘暟缁勪腑鐨勬渶澶ф暟銆傜劧鍚庡啀灏嗙浜屼釜鏁颁笌鍚庨潰鐨勬暟閫愪釜姣旇緝锛屼互娆$被鎺ㄣ傜ず渚嬩唬鐮佸涓嬶細 public class Test { public static void main(String[] args) { i...
绛旓細鏂规硶姝ラ濡備笅锛1锛庨鍏堬紝瀹氫箟涓涓粨鏋勶紝鍖呮嫭鏁板笺佹帓鍚嶅拰搴忓彿銆2锛庡畾涔夌粨鏋勬暟缁勫彉閲廳锛屼繚瀛樻墍鏈夋暣鏁颁俊鎭銆3锛庢帴涓嬫潵锛屽畾涔変竴涓嚜瀹氫箟鍑芥暟鏉ユ瘮杈冩暣鏁板簭鍒椾腑浠绘剰涓や釜鏁存暟鐨勫ぇ灏忋4锛庡畾涔変竴涓嚜瀹氫箟鍑芥暟锛屾瘮杈冩暣鏁板簭鍒椾腑浠绘剰涓や釜鏁板瓧鐨勫簭鏁板ぇ灏忋5锛庡湪涓诲嚱鏁颁腑锛岄鍏堝畾涔変袱涓暣鏁帮紝骞朵繚瀛樻暣鏁颁釜鏁板拰鎺掑悕璁℃暟...
绛旓細int[] num = new int[str.length];//鍒濆鍖栦竴涓暣鍨鏁扮粍锛岄暱搴︿负浣犺緭鍏鏁板瓧鐨勪釜鏁般係tring[] str = scan.nextLine().split(" ");// 杈撳叆鏃朵互绌烘牸闅斿紑鏁板瓧int[] num = new int[str.length];//鍒濆鍖栦竴涓暣鍨嬫暟缁勶紝闀垮害涓轰綘杈撳叆鏁板瓧鐨勪釜鏁癴or (int i = 0; i < str.length; i++) ...
绛旓細6,4,4,0,2]//2姣0澶э紝浜掓崲->[8,6,4,4,2,0]//灏卞儚鎴戜滑鎸夐珮浣庢帓闃熶竴鏍穚rivate static void insertSort(int[] arr) { for (int i = 1; i < arr.length; i++) { for (int j=i;j>0;j--){ if (arr[j]<=arr[j-1]){ break; }else{ int temp = a...
绛旓細鐢Arrays.sort(yourAry); 鎴栬匔ollections.sort()閮藉彲浠ワ紝浣嗗繀椤昏冭檻鏄暟鎹被鍨嬨備笉鍚岀殑绠楁硶浼氬奖鍝嶅埌杈撳嚭鐨勬ц兘銆
绛旓細鏂规硶濡備笅锛歩mport java.util.Random;public class Test{ public static void main(String[] args){ Random rand=new Random();int []arr=new int[10];for(int i=0;i<10;i++){ arr[i]=rand.nextInt(100)-rand.nextInt(100);System.out.print(arr[i]+"\t");} System.out.println()...
绛旓細int[] arrays= {11,2,3,43,54,6,7,8,9};浠庡皬鍒板ぇ for(int i=0;i<arrays.length;i++){ for(int j=0;j<i;j++){ if(arrays[i]<arrays[j]){ int tmp = arrays[j];arrays[j]=arrays[i];arrays[i]=tmp;} } } 浠庡ぇ鍒灏忥紝鍙 if(arrays[i]<arrays[j])鏀规垚 if(arrays...
绛旓細public static void main(String args[]) { int arr[] = {20,10,50,40,30,70,60,80,90,100};System.out.println("鏁扮粍鐢卞ぇ鍒板皬鎺掑簭鍓嶏細");for(int num : arr) { System.out.print(num + "銆");} //浣跨敤鍐掓场鎺掑簭娉曪紝灏嗘暟缁勭敱澶у埌灏忚繘琛屾帓搴 for(int i = 0;i < arr.length-...
绛旓細鏁板瓧鑷甫鏈変釜鏂规硶 Arrays.sort(a);int arry[]={2,1,4,3,7,9,6};Arrays.sort(arry);for(Integer a : arry) { System.out.println(a);} 渚嬪锛歩mport java.util.Arrays;public class Test { public static void main(String[] args){ int a[] = new int[]{8,5,4,2,0,9};Array...
绛旓細public class Sort { public static void main(String[] args){ int arr[]={20,10,50,40,30,70,60,80,90,100};int i=0,j=0;int temp=0;for(i=0;i<9;i++){ for(j=0;j<9-i;j++){ if(arr[j]<arr[j+1]){ temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;} } ...