冒泡排序:
public class BubbleSort {
public static void main(String[] args) {
int[] data = new int[]{5,1,5,2,90,11,20,6,88};
BubbleSort bubbleSort = new BubbleSort();
bubbleSort.bubbleSort(data);
bubbleSort.afterSort(data);
}
public void bubbleSort(int [] data){
for(int i = 0;i<data.length;i++){
for(int j = data.length-1;j>i;j--){
if(data[j-1]>data[j]){
swap(data,j-1,j);
}
}
}
}
private void swap(int[] data,int index1,int index2){
int temp = data[index1];
data[index1] = data[index2];
data[index2] = temp;
}
private String dataToString(int data[]){
StringBuilder sb = new StringBuilder();
for(int i = 0;i<data.length;i++){
sb.append(data[i]).append(",");
}
return sb.substring(0, sb.lastIndexOf(",")).toString();
}
public void afterSort(int data[]){
System.out.println("冒泡排序后:"+this.dataToString(data));
}
}
选择排序:
/**
* @author goodfall
*选择排序时间复杂度o(n^2)
*/
public class SelectSort {
public static void main(String[] args) {
int[] data = new int[]{5,1,5,2,90,11,20,6,88};
SelectSort selectSort = new SelectSort();
selectSort.selectSort(data);
selectSort.afterSort(data);
}
public void selectSort(int [] data){
for(int i = 0;i<data.length-1;i++){
int min = i;
for(int j = i+1;j<data.length;j++){
if(data[min]>data[j]){
min = j;
}
}
if(min!=i){
swap(data, min, i);
}
}
}
private void swap(int[] data,int index1,int index2){
int temp = data[index1];
data[index1] = data[index2];
data[index2] = temp;
}
private String dataToString(int data[]){
StringBuilder sb = new StringBuilder();
for(int i = 0;i<data.length;i++){
sb.append(data[i]).append(",");
}
return sb.substring(0, sb.lastIndexOf(",")).toString();
}
public void afterSort(int data[]){
System.out.println("选择排序后:"+this.dataToString(data));
}
}
直接插入排序:
/**
* @author goodfall
* 直接插入排序
*时间复杂度o(n^2)
*/
public class InsertSort{
/**
* @param args
*/
public static void main(String[] args) {
int[] data = new int[]{5,1,5,2,90,11,20,6,88};
InsertSort is = new InsertSort();
is.insertSort(data);
System.out.println(is.arrayToString(data));
}
public void insertSort(int[] data){
int i ,j ,temp;
for( i = 1;i < data.length;i++){
temp = data[i];
for(j=i-1;j>=0 && temp<data[j];j--){
data[j+1] = data[j];
}
data[j+1] = temp;
}
}
private String arrayToString(int [] data){
StringBuilder sb = new StringBuilder();
for(int i : data){
sb.append(i).append(",");
}
return sb.substring(0, sb.lastIndexOf(","));
}
}