1.冒泡排序
class A {
public static void sort(int[] a) {
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])
swap(a, j, j + 1);
}
}
}
static void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
public class test {
public static void main(String[] args) {
int[] a = { 3, 2, 5, 4, 1, 7, 6 };
A.sort(a);
System.out.println(Arrays.toString(a));
}
}
2.选择排序
class A {
public static void sort(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
int min = i;
for (int j = i + 1; j < a.length; j++) {
if(a[min] > a[j])
min = j;
}
if(min != i)
swap(a, min, i);
}
}
static void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
public class test {
public static void main(String[] args) {
int[] a = { 3, 2, 5, 4, 1, 7, 6 };
A.sort(a);
System.out.println(Arrays.toString(a));
}
}
3.插入排序
class A {
public static void sort(int[] a) {
for (int i = 1; i < a.length; i++) {
int value = a[i];
int j = i - 1;
while(j >=0 && a[j] > value) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = value;
}
}
}
public class test {
public static void main(String[] args) {
int[] a = { 3, 2, 5, 4, 1, 7, 6 };
A.sort(a);
System.out.println(Arrays.toString(a));
}
}
4.快速排序
class A {
public static void sort(int[] a, int start, int end) {
if (start > end || a == null) return;
int i = start;
int j = end;
int p = a[start];
while (i < j) {
while (i < j && p <= a[j]) j--;
while (i < j && p >= a[i]) i++;
if (i < j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
a[start] = a[i];
a[i] = p;
sort(a, start, i - 1);
sort(a, i + 1, end);
}
}
public class test {
public static void main(String[] args) {
int[] a = { 3, 2, 5, 4, 1, 7, 6 };
A.sort(a, 0, a.length - 1);
System.out.println(Arrays.toString(a));
}
}
5.折半查找
public class Test {
public static int sort(int[] a, int find) {
int start = 0;
int end = a.length - 1;
while (start <= end) {
int mid = (start + end) / 2;
if (find == a[mid]) return mid;
if (find < a[mid]) end = mid - 1;
if (find > a[mid]) start = mid + 1;
}
return -1;
}
public static void main(String[] args) {
int[] a = {2, 3, 5, 1, 4, 8, 6, 7};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
int find = reverse.sort(a, 1);
System.out.println(find);
}
}
6.数组反转
public class reverse {
public static void main(String[] args) {
int[] a = {2, 3, 5, 1, 4, 8, 6, 7};
for (int i = 0; i < a.length / 2; i++) {
int temp = a[i];
a[i] = a[a.length - 1 - i];
a[a.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(a));
}
}
public class reverse {
public static void main(String[] args) {
int[] a = {2, 3, 5, 1, 4, 8, 6, 7};
for (int i = 0,j = a.length - 1; i < j; i++, j--) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
System.out.println(Arrays.toString(a));
}
}