java基礎 排序2

jsjqjy發表於2009-12-16
/**
 * 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);
	}
}

 

相關文章