//插入排序
public static void insertSort(int[] arr){
for(int i =0; i < arr.length-1 ; i++){
int cur = arr[i+1];
int index = i;
while(index>=0&& cur<arr[index]){
arr[index+1]= arr[index];
index--;}
arr[index+1]= cur;}}
//希尔排序
public static void shellSort(int[] arr){
int tmp =0;
for(int gap = arr.length/2 ; gap >=1;gap=gap/2){
for(int i = gap ; i < arr.length ; i++){
for(int j = i -gap; j >=0; j = j-gap){
if(arr[j]>arr[j+gap]){
tmp = arr[j];
arr[j]= arr[j+gap];
arr[j+gap]= tmp;}}}}}
//选择排序
public static void selectSort(int[] arr){
int len = arr.length;
for(int i =0; i < len ; i++){
int minIndex = i;
for(int j = i+1 ; j< len ;j++){
if(arr[minIndex]> arr[j]){
minIndex = j;}}
int tmp = arr[i];
arr[i]= arr[minIndex];
arr[minIndex]= tmp;}}
//堆排序
public static void heapSamll(int[] arr){
int root =((arr.length-2)>>1);
while(root>=0){
shiftDown(arr,root);
root--;}}
public static void shiftDown(int[] arr,int parent){
int child = parent*2+1;
int size = arr.length;
while(child<size){
if(child+1<size && arr[child+1]< arr[child]){
child++;}
if(arr[parent]<arr[child]){break;}else {
int tmp = arr[child];
arr[child]= arr[parent];
arr[parent]= tmp;
parent = child;
child = parent*2+1;}}}