1.选择排序
public static void swap ( int [ ] arr, int i, int j) {
int temp = arr[ i] ;
arr[ i] = arr[ j] ;
arr[ j] = temp;
}
public static void printArray ( int [ ] arr) {
for ( int each : arr) {
System. out. print ( each + " " ) ;
}
}
public static void selectSort ( int [ ] arr) {
if ( arr. length < 2 || arr == null) {
return ;
}
int N = arr. length;
for ( int i = 0 ; i < N; i++ ) {
int minValueIndex = i;
for ( int j = i+ 1 ; j < N; j++ ) {
minValueIndex = arr[ j] < arr[ minValueIndex] ? j : minValueIndex;
}
swap ( arr, i, minValueIndex) ;
}
}
2. 冒泡排序
public static void bubbleSort1 ( int [ ] arr) {
if ( arr. length < 2 || arr == null) {
return ;
}
int N = arr. length;
for ( int end = N- 1 ; end >= 0 ; end-- ) {
for ( int second = 1 ; second <= end; second++ ) {
if ( arr[ second - 1 ] > arr[ second] ) {
swap ( arr, second - 1 , second) ;
}
}
}
}
3.插入排序
public static void insertionSort1 ( int [ ] arr) {
if ( arr. length < 2 || arr == null) {
return ;
}
int N = arr. length;
for ( int end = 1 ; end < N; end++ ) {
int newNumIndex = end;
while ( newNumIndex- 1 >= 0 && arr[ newNumIndex- 1 ] > arr[ newNumIndex] ) {
swap ( arr, newNumIndex- 1 , newNumIndex) ;
newNumIndex-- ;
}
}
}
public static void insertion ( int [ ] arr) {
if ( arr. length < 2 || arr == null) {
return ;
}
int N = arr. length;
for ( int current = 1 ; current < N; current++ ) {
for ( int pre = current - 1 ; pre >= 0 && arr[ pre] > arr[ pre+ 1 ] ; pre-- ) {
swap ( arr, pre, pre+ 1 ) ;
}
}
}