1.冒泡算法
代码:
private void bubbleSort(int[] arr) {
for(int i=0;i<=arr.length;i++){
boolean flag = false;
for(j=0;j<arr.length-1-i;j++){
if (arr[j] > arr[j + 1]) {
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
flag=true;
}
}
if (!flag)
return;
}
}
插入排序:
private void insertSort(int[] arr) {
for(inti =1; i < arr.length; i++) {
int j =0;
int temp = arr[i];
for(j = i -1; j >=0&& temp < arr[j]; j--) {
arr[j +1] = arr[j];
}
arr[j +1] = temp;
}
希尔排序
private void shellSort(int[] arr) {
intgap = arr.length /2;
while(1<= gap) {
for(inti = gap; i < arr.length; i++) {
intj =0;
int temp = arr[i];
for(j = i - gap; j >=0&& temp < arr[j]; j = j - gap) {
arr[j + gap] = arr[j];
}
arr[j + gap] = temp;
}
gap = gap /2;
}
}
快速排序:
privatevoid quickSort(int[] arr,intleft,intright) {if(left<right){
int baseIndex = division(arr,left,right);
quickSort(arr,left, baseIndex -1);
quickSort(arr, baseIndex +1,right);
}
}
private int division(int[] arr,intleft,intright) {
int base = arr[left];
while(left< right && arr[right] >= base) {
right--;
}
arr[left] = arr[right];
while(left< right && arr[right] <= base) {
left++;
}
arr[right] = arr[left];
}
arr[left]=base;
return left;
}
选择排序/
private void selectSort(int[] arr) {
for(inti =0; i < arr.length; i++) {
int index= i;
for(int j = i +1; j < arr.length; j++) {
if(arr[index] > arr[j]) {
index= j;
}
}
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
}