java冒泡排序和选择排序
冒泡排序思想:将一组无序的数排序,从第一个数开始和第二个数比较,第一个数大于第二个数就交换位置,如果小于就不交换位置,然后以此类推就是第二个数和第三个数再比较,第三个数和第四个数比较....直到和最后的数比完为止,这样一轮下来,最大的数就排在最后边,然后重复此操作,直到没有任何一对数字需要比较。
原理:就是找每轮最大的数。
import java. util. Arrays
class MyTest {
public static void main ( String[ ] args) {
int [ ] arr= { 51 , 944 , 1 , 9 , 57 , 366 , 79 , 6 , 1 , 345 } ;
for ( int j= 0 ; j< arr. length- 1 ; j++ ) {
for ( int i= 0 ; i< arr. length- 1 - j; i++ ) {
if ( arr[ i] > arr[ i+ 1 ] ) {
int t= arr[ i] ;
arr[ i] = arr[ i+ 1 ] ;
arr[ i+ 1 ] = t;
}
}
}
System. out. println ( Arrays. toString ( arr) ) ;
}
}
选择排序
选择排序思想:给出一组无序的数组,将位于第一位数拿出来和第二位,第三位,第四位等数比较,如果小于第一位的数就交换位置,就是将小的数往前放,这一趟下来,最小的数就放在了最左边第一位上,然后重复此操作,直到没有数需要比较。
import java. util. Arrays;
class MyTest {
public static void main ( String[ ] args) {
int [ ] arr= { 51 , 944 , 1 , 9 , 57 , 366 , 79 , 6 , 1 , 345 } ;
sort ( arr) ;
System. out. println ( Arrays. toString ( arr) ) ;
}
private static void sort ( int [ ] arr) {
for ( int i = 0 ; i < arr. length- 1 ; i++ ) {
int minIndex= i;
for ( int j = i+ 1 ; j < arr. length; j++ ) {
if ( arr[ j] < arr[ minIndex] ) {
minIndex= j;
}
}
if ( i!= minIndex) {
int t= arr[ i] ;
arr[ i] = arr[ minIndex] ;
arr[ minIndex] = t;
}
}
}
}