java排序

package com.wiwj.test.test;

public class SourceNumber
{
public static void main(String[] args) {
int[] a = { 1, 5, 7, 9, 23, 2, 6 };
print(a);
// toSort1(a);
// toSort2(a);
//toSort3(a);
toSort4(a);
print(a);
}


//方法一(更换值)
private static void toSort1(int[] a) {
int step;
for (int i = 0; i < (a.length - 1); i++) {
for (int j = 0; j < (a.length - 1) - i; j++) {
if (a[j] > a[j + 1]) {
step = a[j];
a[j] = a[j + 1];
a[j + 1] = step;
}
}
}
}
// 方法二(更换值)
private static void toSort2(int[] a) {
int step;
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[j] < a[i]) {
step = a[j];
a[j] = a[i];
a[i] = step;
}
}
}
}
// 方法三(更换索引进行比较)
private static void toSort3(int[] a) {
int step;// 中间变量
int k;// 始终拿着最大值的下标
int l;// 位置
for (int i = 0; i < a.length; i++) {
k = 0;
for (int j = 1; j < a.length - i; j++) {
if (a[j] > a[k]) {
k = j;
}
}
// 得到一个最大值,放在后面
l = a.length - 1 - i;
if (k != l) {
step = a[l];
a[l] = a[k];
a[k] = step;
}
}
}
// 方法四(更换索引进行比较)
private static void toSort4(int[] a) {
int step;// 中间变量
int k;// 始终拿着最小值的下标
for (int i = 0; i < a.length; i++) {
k = i;
for (int j = i + 1; j < a.length; j++) {
// 当前循环比较到最后,取出最大值的索引
if (a[j] < a[k]) {
k = j;
}
}
// 得到一个最小值,放在前面
if (k != i) {
step = a[i];
a[i] = a[k];
a[k] = step;
}
}
}
// 打印
private static void print(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}

}

posted @ 2016-09-05 10:46  wangkejun  阅读(80)  评论(0编辑  收藏  举报