java基础 排序2

/**
 * MyProject
 * com.测试代码
 * 简单排序.java
 * 2009-12-15
 */
package com.测试代码;

import java.util.Arrays;

/**
 * 
 * @author jsjxqjy
 * @version 1.0.0
 * @since JDK1.6.0 ,tomcat6.0 2009-12-15
 * 
 */
public class 简单排序 {

	public static void main(String[] args) {
		// 3.对ASWRD进行排序(字符串)
		System.out.println("---------->排序前:ASWRD");
		sortStr("ASWRD","DESC");
		sortStrByArrays("ASWRD");
		// 4.对1235345进行排序。
		int a = 1235345;
		sortStr(String.valueOf(a),"ASC");
	}

	/**
	 * 对字符串进行排序
	 * @param src 要排序的字符串
	 * @param sortWay 排序方式
	 */
	public static void sortStr(String src, String sortWay) {
		char[] cArr = src.toCharArray();
		sort(cArr, sortWay);
	}

	/**
	 * 使用java自带的功能排序
	 * 
	 * @param src
	 */
	public static void sortStrByArrays(String src) {
		char[] cArr = src.toCharArray();
		Arrays.sort(cArr);
		StringBuffer sb = new StringBuffer();
		for (char item : cArr) {
			sb.append(item);
		}
		System.out.println("---------->排序后:"+sb.toString());
	}

	/**
	 * 选择排序法
	 * 
	 * @param charArray
	 *            要排序的字符数组
	 * @param sortWay
	 *            排序方式
	 */
	public static void sort(char[] charArray, String sortWay) {
		if ("ASC".equals(sortWay)) {
			sortByASC(charArray);
		} else {
			sortByDESC(charArray);
		}
	}

	// 升序
	private static void sortByASC(char[] charArray) {
		int min = 0;
		char tmp;
		for (int i = 0; i < charArray.length; i++) {
			min = i;
			for (int j = i + 1; j < charArray.length; j++) {
				if (charArray[j] < charArray[min]) {
					min = j;
				}
			}
			// exchange:
			tmp = charArray[i];
			charArray[i] = charArray[min];
			charArray[min] = tmp;
		}
		// Test the result:
		String str = "";
		for (char ss : charArray) {
			str += ss;
		}
		System.out.println("---------->排序后:"+str);
	}

	// 倒序
	private static void sortByDESC(char[] charArray) {
		int max = 0;
		char tmp;
		for (int i = 0; i < charArray.length; i++) {
			max = i;
			for (int j = i + 1; j < charArray.length; j++) {
				if (charArray[j] > charArray[max]) {
					max = j;
				}
			}
			// exchange:
			tmp = charArray[i];
			charArray[i] = charArray[max];
			charArray[max] = tmp;
		}
		// Test the result:
		String str = "";
		for (char ss : charArray) {
			str += ss;
		}
		System.out.println("---------->排序后:"+str);
	}
}

 

你可能感兴趣的:(java,J#,Exchange)