📄 radixsort.java
字号:
package Strategy;
import java.util.Vector ;
class RadixSort extends SortStrategy
{
private Vector [] vectorArray ;
private int vectorNumber = 10 ;
public RadixSort()
{
vectorArray = new Vector[ vectorNumber ] ;
for(int i = 0 ; i < vectorNumber ; i++ )
vectorArray[i] = new Vector() ;
}
public int getBaseNumber( int data , int pass )
{
int power , i ;
int value ,num1 , num2 ;
power = 1 ;
for( i = 1 ; i <= pass-1 ; i++ )
power = power * 10 ;
num1 = power;
num2 = data % ( 10*power );
value = num2 / num1 ;
return value ;
}
public void BaseSort(Comparable [] A, int n)
{
int i , j ;
int position ;
Integer temp ;
int passNumber ;
int size ;
int data = 0 ;
int pass = 3 ;
int count = 0 ;
for( i=0 ; i < num ; i++ )
A[i] = A[i+1] ;
for( pass = 1 ; pass <= 8 ; pass++ )
{
count = 0 ;
position = 0;
for( i = 0 ; i < vectorNumber ; i++ )
vectorArray[ i ].clear() ;
while( count < n )
{
data = A[ count++ ] ;
passNumber = getBaseNumber( data , pass ) ;
vectorArray[ passNumber ].addElement( new Integer( data ) );
}
for( i = 0 ; i < vectorNumber ; i++ )
{
if( !vectorArray[i].isEmpty() )
{
size = vectorArray[i].size() ;
for( j = 0 ; j < size ; j++ )
{
temp =(Integer)( vectorArray[i].elementAt( j ) ) ;
A[position + j] = temp.intValue() ;
}
position = position + size ;
}
}
}
}
public void sort(Comparable[] a)
{
//init data
//create();
//sorting logic here
BaseSort(a, a.length) ;
//print data
showOff();
//System.out.println("I can do radix sort.");
//show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -