java数组排序方法代码 java数组排序方法代码怎么写

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所组成的数组
java 如何实现数组排序并输出每个数字原来的索引java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
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; ia.length; i++) {map.put(a[i], i); // 将值和下标存入Map}// 排列List list = new ArrayList();Arrays.sort(a); // 升序排列for (int i = 0; ia.length; i++) {list.add(a[i]);}for (Object object : list) {System.out.print(object + ",");}System.out.println();// 查找原始下标for (int i = 0; in; i++) {System.out.print(map.get(a[i]) + ",");}} }
运行结果如下:
java编程实现随机数组的快速排序java编程实现随机数组的快速排序步骤如下:
1、打开Eclipse , 新建一个Java工程,在此工程里新建一个Java类;
2、在新建的类中声明一个产生随机数的Random变量,再声明一个10个长度的int型数组;
3、将产生的随机数逐个放入到数组中;
4、利用排序算法对随机数组进行排序 。
具体代码如下:
import java.util.Random;
public class Demo {
public static void main(String[] args) {
int count = 0;
Random random = new Random();
int a[] = new int[10];
while(count10){
a[count] = random.nextInt(1000);//产生0-999的随机数
count++;
}
for (int i = 0; ia.length - 1; i++) {
int min = i;
for (int j = i + 1; ja.length; j++) {
if (a[j]a[min]) {
min = j;
}
}
if (min != i) {
int b = a[min];
a[min] = a[i];
a[i] = b;
}
}
for (int c = 0; ca.length; c++) {
System.out.print(a[c] + " ");
}
}
}
java冒泡排序法代码冒泡排序是比较经典的排序算法 。代码如下:
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交换位置
}
拓展资料:
原理:比较两个相邻的元素,将值大的元素交换至右端 。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面 。即在第一趟:首先比较第1个和第2个数 , 将小数放前 , 大数放后 。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数 , 将小数放前,大数放后 。重复第一趟步骤,直至全部排序完成 。

推荐阅读