package com.zsw.sort;
/**
* 排序程式設計
* 請說出3中常見的排序方法,并使用任意一種方法編寫排序函數
* 1.冒泡排序
* 2.選擇排序
* 3.插入排序
* @author zsw
*/
public class MySort {
/**
* 選擇排序
* @param number
*/
public static void selectionSort(int[] number){
for(int i =0;i<number.length-1;i++){
int m = i;
for(int j = i+1;j<number.length;j++){
if(number[j]<number[m])
m = j;
}
if(i!=m)
swap(number, i, m);
}
}
/**
* 插入排序
* @param number
*/
public static void injectionSort(int[] number){
for(int j = 1;j<number.length;j++){
int tmp = number[j];
int i = j-1;
while(tmp<number[i]){
number[i+1] = number[i];
i--;
if(i==-1){
break;
}
}
number[i+1] = tmp;
}
}
/*
* 冒泡排序
*/
public static void bubbleSort(int[] number){
boolean flag = true;
for(int i = 0;i<number.length-1 && flag;i++){
flag = false;
for (int j = 0; j < number.length-1-i; j++) {
if(number[j+1]<number[j]){
swap(number, j+1,j);
flag = true;
}
}
}
}
private static void swap(int[] number,int i,int j){
int t;
t = number[i];
number[i] = number[j];
number[j] = t;
}
public static void main(String[] args) {
int [] number = {1,6,3,4,7,8,11};
// bubbleSort(number);
// selectionSort(number);
injectionSort(number);
for(int i =0;i<number.length;i++){
System.out.println(number[i]);
}
}
}