选择排序(java)

/**
 * TODO
 */
package com.xeezee.sort;

/**
 * 选择排序
 * 
 * @author luoqinglong
 * @date 2012-7-31
 */
public class ChooseSort {

	private final long[] origArr = new long[] { 12, 65, 2, 33, 89, 23, 10 };
	private final static int SORT_DEST = 0;
	private final static int SORT_ASC = 1;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ChooseSort chooseSort = new ChooseSort();
		chooseSort.sort(chooseSort.origArr, ChooseSort.SORT_ASC);

		for (int j = 0; j < chooseSort.origArr.length; j++) {
			System.out.println(chooseSort.origArr[j]);
		}
	}

	public void sort(long[] arrays, int sortType) {
		int len = this.origArr.length;

		for (int i = 0; i < len; i++) {
			// 从左往右比较
			int destIndex = i;
			for (int j = i; j < len - 1; j++) {
				if (sortType == ChooseSort.SORT_DEST) {
					if (this.origArr[destIndex] < this.origArr[j + 1]) {
						// this.swap(i, j + 1);
						destIndex = j + 1;
					}
				} else {
					if (this.origArr[destIndex] > this.origArr[j + 1]) {
						// this.swap(i, j + 1);
						destIndex = j + 1;
					}
				}
			}
			this.swap(i, destIndex);
		}
	}

	public void swap(int leftInde, int rightIndex) {
		long temp = this.origArr[leftInde];
		this.origArr[leftInde] = this.origArr[rightIndex];
		this.origArr[rightIndex] = temp;
	}

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值