您的位置:首页 > 编程语言 > Java开发

Java数组几种排序

2016-11-16 21:59 211 查看
1.冒泡排序

int a[] = { 2, 1, 4, 5, 7, 8, 9, 3, 6, 10 };

int temp, length = a.length;
for (int i = 0; i < length - 1; i++) {
for (int j = i + 1; j < length; j++) {
if (a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}

for (int i : a) {
System.out.println(i + "");
}


2.选择性排序

int temp, length = a.length;
for (int i = 0; i < length - 1; i++) {
int min = i;
for (int j = i + 1; j < length; j++) {
if (a[min] > a[j]) {
min = j;
}
}

if (i != min) {
temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}

for (int i : a) {
System.out.println(i + "");
}


3.插入排序

int temp, j, length = a.length;
for (int i = 1; i < length; i++) {
temp = a[i];
for (j = i; j > 0 && temp < a[j - 1]; j--) {
a[j] = a[j - 1];
}
a[j] = temp;
}

for (int i : a) {
System.out.print(i + " ");
}


4.快速排序

private static void quickSort(int[] a, int start, int end) {
if (start < end) {
int base = a[start];
int temp;
int i = start, j = end;
do {
while ((a[i] < base) && (i < end)) {
i++;
}
while ((a[j] > base) & (j > start)) {
j--;
}
if (i <= j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
} while (i < j);

if (start < j) {
quickSort(a, start, j);
}
if (end > i) {
quickSort(a, i, end);
}
}
}

quickSort(a, 0, a.length-1);

for (int i : a) {
System.out.print(i + " ");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: