Java基础--对字符串从小到大排序

/**
对下面数据进行排序

-5 22 3 9 26 7 122 300 56 8 12 20

思路:
1,对字符串来按照空格截取,转换成字符数组。
2,对数组中的类型来进行转换。
3,对int[]进行排序。
4,转换成字符数组显示。
*/

import java.util.Arrays;
class  SrotStringArrtyToInt
{
	private static final String KG = " ";
	public static void main(String[] args) 
	{
		String s = "-5 22 3 9 26 7 122 300 56 8 12 20";

		String [] s_arr = splitFonction(s);
		int [] s_int = arrToInt(s_arr);


		show(s_int);
		SrotArrtyFonction(s_int);
		//SrotArrty(s_int);
		show(s_int);
	}

	//将整数数组来按照选择排序
	public static void SrotArrtyFonction(int [] srot_i){
		for (int i = 0; i < srot_i.length ;i++ )
		{
			for (int j = i+1;j< srot_i.length ;j++ )
			{
				if(srot_i[i]>srot_i[j]){
					top(srot_i,i,j);
				}
			}
		}
	}

	//将String数组转换为int[]类型数组
	public static int[] arrToInt(String [] s_arr){
		int [] i_arr = new int[s_arr.length];

		for (int i = 0;i<s_arr.length ;i++ )
		{
			i_arr[i] = Integer.parseInt(s_arr[i]);
		}
		return i_arr;
	}
	

	//调用Arrays方法来对数据进行排序
	public static void SrotArrty(int [] srotArrty){
		Arrays.srot(srotArrty);
	}

	//置换位置
	public static void top(int [] s,int a,int b){
		int temp = s[a];
		s[a] = s[b];
		s[b] = temp;
	}


	//打印输出格式
	public static void show(int [] s){
		System.out.print("[");
		for (int i = 0; i < s.length ;i++ )
		{
			if(i < s.length-1)
				System.out.print(s[i]+KG);
			else
				System.out.print(s[i]+"]");
		}
		System.out.println();
	}

	//按照指定字符串截取
	public static String[]  splitFonction(String s){
		String[] st_arr = s.split(KG);
		return st_arr;
	}
}

排序思路:

  1. 11,5,99,12,20,20,30
  2. 11和5比较--> 5,11
  3. 11和99比较 --> 5,11,99
  4. 11和12比较 --> 5,11,12,99。以此类推;

运行结果:

[-5 22 3 9 26 7 122 300 56 8 12 20]
[-5 3 7 8 9 12 20 22 26 56 122 300]

猜你喜欢

转载自blog.csdn.net/u013251413/article/details/80526789