1.冒泡排序
原理;每一次排序都将最大/小的元素放在数组的最末尾
public class BubbleSort implements Sort {
@Override
public void sort(int[] arr) {
for (int i =0;i < arr.length-1;i++)
{
boolean flag = true;
for (int j = 0;j < arr.length-1-i;j++)
{
if (arr[j+1] > arr[j])
{
int t = arr[j+1];
arr[j+1] = arr[j];
arr[j] = t;
flag = false;
}
}
System.out.println(Arrays.toString(arr));
if (flag) {
break;
}
}
}
}
2.选择排序
原理:每次排序将最小/大的元素放在未排序的数组的最前端
public class SelectSort implements Sort {
@Override
public void sort(int[] arr) {
for (int i =0;i < arr.length;i++)
{
for (int j = i+1;j < arr.length;j++)
{
if (arr[i] > arr[j])
{
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
System.out.println(Arrays.toString(arr));
}
}
}
3.插入排序
原理:将数组看作两部分,一部分为有序数组,一部分为无序数组。排序过程就是将无序数组中的元素一个个插入有序数组的过程。
public class InsertSort implements Sort {
@Override
public void sort(int[] arr) {
for (int i = 1;i < arr.length;i++)
{
int insertValue = arr[i];
int index = i-1;
while (index >= 0 && insertValue > arr[index])
{
arr[index+1] = arr[index];
index--;
}
arr[index+1] = insertValue;
}
System.out.println(Arrays.toString(arr));
}
}