
正文
java实现数组排序代码 java 给数组排序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java程序代码编写:对数组从小到大排序,并得出交换次数和比较次数
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int[] a = new int[10];
Scanner input = new Scanner(System.in);
for(int i=0;i10;i++) a[i]=input.nextInt();
int chg=0,cmp=0;
for(int i=0;i9;i++)
for(int j=0;j9-i;j++)
{
cmp++;
if(a[j]a[j+1])
{
chg++;
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
System.out.println(Arrays.toString(a));
System.out.println("比较次数:"+cmp);
System.out.println("交换次数:"+chg);
input.close();
}
}
相关问答
Q1: java 如何实现数组排序并输出每个数字原来的索引
java变成对数组进行排序可以使用ArraySort方法java实现数组排序代码,保存源数组下标值可以存入map中java实现数组排序代码,如下代码java实现数组排序代码:
import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List; public class ceshi { public static void main(String[] args) { int n = 5; int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 }; HashMap map = new HashMap(); for (int i = 0; i a.length; i++) { map.put(a[i], i); // 将值和下标存入Map } // 排列 List list = new ArrayList(); Arrays.sort(a); // 升序排列 for (int i = 0; i a.length; i++) { list.add(a[i]); } for (Object object : list) { System.out.print(object + ","); } System.out.println(); // 查找原始下标 for (int i = 0; i n; i++) { System.out.print(map.get(a[i]) + ","); } } }
运行结果如下java实现数组排序代码:
Q2: JAVA通过数组按首字母排序怎么做?
自己封装的一个工具类,可以将汉字按照拼音的首字母排序,支持对Model和字典排序.只能对首字母排序,不支持第二个字母, 实现的原理就是创建一个A-Z的数组,数组中的元素是字典,字典中有两个元素,一个是title,就是当前的首字母 A-Z中的一个,另一个是保存当前title对应的元素的数组,对传入的数组进行遍历获得数组中的一个元素,如果是Model或者字典通过传入的key的值获得要排序的字符串,获得字符串的拼音的首字母,判断拼音的首字母是A-Z中的哪一个,然后放到数组中的对应的字典的数组中.
后来又做了一个对英文的首字母排序的程序,原理和上面的一样,还省略了将汉字转化为拼音的步骤。工具类的名称是:NH_OrderByPinYinFirstLetter。
代码:使用的时候直接调用下面的方法就行,是一个加号方法,第一个参数是保存要排序的元素的数组,第二个参数:如果数组中是Model或者字典,就写排序的依据的key值,如果数组中不是Model或字典,就写nil。
[objc] view plain copy
// 方法
+ (NSMutableArray *)baseOrderPinYinOnArr:(NSMutableArray *)arr ByKey:(NSString *)key 返回值的类
// 返回一个有24个元素的数组,数组里的元素是字典
// 字典里有两对键值对
// title : 当前的拼音首字母 A - Z
// datas : 当前的拼音首字母对应的model所组成的数组
Q3: 编写一个java程序对一个字符串数组进行排序
import java.util.Arrays;
public class StringDateSort {
public static void main(String[] args) {
String numString="23 10 -8 0 3 7 108";
String sortStr=sortNumberString(numString);
System.out.println("排序的结果是"+sortStr);
}
private static String sortNumberString(String numString) {
//1.将给定的字符串分解成多个数字格式字符串
String[] numStrings=toStringArray(numString);
//2.将字符串数组转成int数组
int[] nums=toIntArray(numStrings);
//3.对数组排序
sort(nums);
//4.将int数组转成字符串
return toString(nums);
}
private static String toString(int[] nums) {
StringBuffer stringBuffer=new StringBuffer();
for (int i = 0; i nums.length; i++) {
if (i!=nums.length-1) {
stringBuffer.append(nums[i]+"");
}else{
stringBuffer.append(nums[i]);
}
}
return stringBuffer.toString();
}
private static void sort(int[] nums) {
Arrays.sort(nums);
}
private static int[] toIntArray(String[] numStrings) {
int[] nums=new int[numStrings.length];
for (int i = 0; i numStrings.length; i++) {
String s=numStrings[i];
nums[i]=Integer.parseInt(s);
}
return nums;
}
private static String[] toStringArray(String numString) {
String[] numberStr=numString.split(" ");
for (int i = 0; i numberStr.length; i++) {
System.out.println("抽出数字"+numberStr[i]);
}
return numberStr;
}
}
Q4: java 数组顺序排列
首先,API里面写了: Sorts the specified array of ints into ascending numerical order.
就是这是个升序!
其次,你这个运行应该不会报错,输出的会是 数组地址,因为数组在java里面是一个对象,如果要看排序的结果,需要遍历下:
比如
for(int i:arr){
System.out.println(i);
}
关于java实现数组排序代码和java 给数组排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






