插入排序
import java. util. Arrays;
public class InsertSort {
public static void main ( String[ ] args) {
long l = System. currentTimeMillis ( ) ;
int [ ] arr= new int [ 8 ] ;
for ( int i = 0 ; i < 8 ; i++ ) {
arr[ i] = ( int ) ( Math. random ( ) * 80000 ) ;
}
insert ( arr) ;
long l1 = System. currentTimeMillis ( ) ;
System. out. println ( l1- l) ;
System. out. println ( Arrays. toString ( arr) ) ;
}
static void insert ( int [ ] arr) {
int index= 0 ;
int temp= 0 ;
for ( int insert = 1 ; insert < arr. length ; insert++ ) {
index = insert - 1 ;
temp = arr[ insert] ;
while ( index >= 0 && temp < arr[ index] ) {
arr[ index + 1 ] = arr[ index] ;
index-- ;
}
index++ ;
if ( index!= insert) {
arr[ index] = temp;
}
}
}
}
希尔排序:
import java. util. Arrays;
public class ShellSort {
public static void main ( String[ ] args) {
int [ ] arr = { - 1 , 9 , 7 , - 5 , 2 } ;
shellSortByMove ( arr) ;
}
public static void shellSortBySwap ( int [ ] arr) {
for ( int gap = arr. length / 2 ; gap > 0 ; gap /= 2 ) {
for ( int j = gap; j < arr. length; j++ ) {
for ( int k = j - gap; k >= 0 ; k -= gap) {
if ( arr[ k] > arr[ k + gap] ) {
int temp = 0 ;
temp = arr[ k] ;
arr[ k] = arr[ k + gap] ;
arr[ k + gap] = temp;
}
System. out. println ( Arrays. toString ( arr) ) ;
}
}
}
}
public static void shellSortByMove ( int [ ] arr) {
for ( int gap = arr. length / 2 ; gap > 0 ; gap /= 2 ) {
for ( int i = gap; i< arr. length; i++ ) {
int temp= 0 ;
int j = i;
temp= arr[ j] ;
while ( j- gap>= 0 && temp< arr[ j- gap] ) {
arr[ j] = arr[ j- gap] ;
j-= gap;
}
arr[ j] = temp;
}
}
System. out. println ( Arrays. toString ( arr) ) ;
}
}