冒泡算法
public void BubbleSort(int[] array){
if(array==null||array.length==0)
return;
boolean flag=true;
for(int i=0;i<array.length&&flag;i++){
flag=false;
for(int j=array.length-2;j>=i;j--){
if(array[j]>array[j+1]){
Swap(array[j],array[j+1]);
flag=true;
}
}
}
}
简单选择排序
public void SelectSort(int [] array){
if(array==null&&array.length==0)
return;
for(int i=0;i<array.length;i++){
for(int j=i+1;j<array.length;j++){
int min=i;
if(array[j]<array[min]){
min=j;
}
}
if(i!=min)
Swap(min, i);
}
}
堆排序
public void HeapSort(int[] array){
if(array==null||array.length==0)
return;
for(int i=array.length/2-1;i>=0;i--){
HeapJust(array, i, array.length-1);
}
for(int i=array.length-1;i>=0;i--){
Swap(array, 0,i );
HeapJust(array, 0, i-1);
}
}
public void HeapJust(int[] array,int s, int m){
int j;
int temp=array[s];
for(j=2*s; j<=m; j=2*j){
if(j<m&&array[j]>array[j+1])
j++;
if(temp>array[j])
break;
array[s]=array[j];
s=j;
}
array[s]=temp;
}
快排
public void QuickSort(int[] array){
QSort(array,0,array.length-1);
}
public void QSort(int[] array,int low,int high){
int pivot;
if(low<high){
pivot=Partion(array,low,high);
QSort(array,low, pivot-1);
QSort(array,pivot+1,high);
}
}
public int Partion(int array, int low,int high){
int pivotKey=array[0];
while(low<high){
while(low<high&&array[high]>=pivotkey)
high--;
swap(array,low,high);
while(low<high&&array[low]<=pivotkey)
low++
swap(array,low,high);
}
return low;
}
归并排序
public void MergeSort(int [] array ){
if(array==null||array.length==0)
return;
MSort(array, temp,0, array.length);
}
时间复杂度
网友评论