下面是java编写的一些简单的排序算法。
1.冒泡
// 冒泡排序
public static void BubbleSort(int a[]) {
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int n = a[j + 1];
a[j + 1] = a[j];
a[j] = n;
}
}
}
}
2.快排
// 快速排序
public static void QuicSort(int a[], int l, int r) {
if (l < r) {
int i = l, j = r, x = a[i];
while (i < j) {
while (i < j && a[j] >= x)
j--;
if (i < j) {
a[i] = a[j];
i++;
}
while (i < j && a[i] < x)
i++;
if (i < j) {
a[j] = a[i];
j--;
}
}
a[i] = x;
QuicSort(a, l, i - 1);
QuicSort(a, i + 1, r);
}
}
3.选择
// 选择排序
public static void SelectionSort(int a[]) {
for (int i = 0; i < a.length; i++) {
int mid = i;
for (int j = i + 1; j < a.length; j++) {
if (a[j] < a[mid]) {
mid = j;
}
if (mid != i) {
int t = a[i];
a[i] = a[mid];
a[mid] = t;
mid = i;
}
}
}
}
4。插入
// 插入排序
public static void InsertionSort(int a[]) {
for (int i = 1; i < a.length; i++) {
if (a[i - 1] > a[i]) {
int t = a[i];
int j = i;
for (j = i; j > 0 && a[j - 1] > t; j--) {
a[j] = a[j - 1];
}
a[j] = t;
}
}
}
5.冒泡排序优化
// 优化冒泡排序
public static void BubbleSort2(int a[]) {
int k = a.length;
boolean flag = true;
while (flag) {
flag = false;
for (int i = 0; i < k - 1; i++) {
if (a[i] > a[i + 1]) {
int t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
flag = true;
}
}
k--;
}
}