选择排序法
public class Demo1 {
public static void main ( String[ ] args) {
int [ ] arr= { 1 , 5 , 4 , 7 , 8 , 3 , 4 , 4 , 8 , 9 , 47 , 2 } ;
int index;
for ( int i = 0 ; i < arr. length- 1 ; i++ ) {
index = i;
for ( int j = i; j < arr. length; j++ ) {
if ( arr[ j] < arr[ index] ) {
index= j;
}
}
int t= arr[ i] ;
arr[ i] = arr[ index] ;
arr[ index] = t;
}
for ( int a: arr)
System. out. print ( a+ "\t" ) ;
}
}
冒泡排序法
public class Demo6 {
public static void main ( String[ ] args) {
int [ ] a= { 1 , 2 , 5 , 43 , 346 , 23 , 43 , 7 , 545 , 42 , 2 } ;
for ( int i = 0 ; i < a. length- 1 ; i++ ) {
for ( int j = 0 ; j < a. length- 1 - i; j++ ) {
if ( a[ j] > a[ j+ 1 ] ) {
int t= a[ j] ;
a[ j] = a[ j+ 1 ] ;
a[ j+ 1 ] = t;
}
}
}
for ( int b: a)
System. out. print ( b+ "\t" ) ;
}
}
二分查找法
public class Demo2 {
public static void main ( String[ ] args) {
int [ ] arr= { 4 , 5 , 45 , 4 , 34 , 234 , 6 , 7 , 435 , 34 , 0 } ;
Arrays. sort ( arr) ;
Scanner sc= new Scanner ( System. in) ;
int left= 0 ;
int right= arr. length- 1 ;
int mid= ( left+ right) / 2 ;
System. out. println ( "请输入你想要找的数" ) ;
int target= sc. nextInt ( ) ;
boolean flag= false ;
System. out. println ( Arrays. toString ( arr) ) ;
while ( left<= right) {
if ( target== arr[ mid] ) {
System. out. println ( "找到了在" + ( mid+ 1 ) ) ;
flag= true ;
break ;
}
if ( target> arr[ mid] )
left= mid+ 1 ;
if ( target< arr[ mid] )
right= mid- 1 ;
mid= ( left+ right) / 2 ;
}
if ( flag== false )
System. out. println ( "找不到" ) ;
}
}