算法实现代码
package com.utils.sort;
import java.util.ArrayList;
import java.util.List;
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(-5);
list.add(-2);
list.add(9);
list.add(1);
list.add(0);
System.out.println(list.toString());
bubbleSortAsc2(list);
// insertSortAsc(list);
System.out.println(list.toString());
}
public static void bubbleSortAsc(List<Integer> list){
if(list==null){
return;
}
int size = list.size();
if(size<=1){
return;
}
for(int i=size-1-1; i>=1; i--){
for(int j=0; j<=i; j++){
if(list.get(j)>list.get(j+1)){
swap(list, j, j+1);
}
}
}
}
public static void bubbleSortAsc2(List<Integer> list){
if(list==null){
return;
}
int size = list.size();
if(size<=1){
return;
}
for(int i=1; i<=size-2; i++){
for(int j=0; j<=size-1-i; j++){
if(list.get(j)>list.get(j+1)){
swap(list, j, j+1);
}
}
}
}
public static void simpleSelectSort(List<Integer> list){
if(list==null){
return;
}
int size = list.size();
if(size<=1){
return;
}
for(int i=0; i<=size-2; i++){
int index = i;
for(int j=i+1; j<=size-1; j++){
if(list.get(j)<=list.get(index)){
index = j;
}
}
if(index!=i){
swap(list, i, index);
}
}
}
public static void insertSortAsc(List<Integer> list){
if(list==null){
return;
}
int size = list.size();
if(size<=1){
return;
}
for(int i=1; i<=size-1; i++){
int temp = list.get(i);
int index = i-1;
while(index>=0 && list.get(i)<list.get(index)){
list.set(index+1, list.get(index));
index--;
}
if(index+1!=i){
list.set(index+1,temp);
}
}
}
public static void swap(List<Integer> list, int i, int j){
int temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
System.out.println("swap " + i + "--" +j);
}
}