//冒泡排序
int a[] = {5,4,3,6,7,9,2,1,8};
for(int i =0;i<a.length;i++){
for(int j =a.length-1;j>i;j--){
if(a[j]<a[j-1]){
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
for(int i = a.length -1;i>=0;i--){
for(int j = 0;j<i;j++){
if(a[j]>a[j+1]){
int tmp = a[j];
a[j]=a[j+1];
a[j+1] = tmp;
}
}
}
//直接选择排序
int a[] = {5,4,3,6,7,9,2,1,8};
for(int i = 0;i<a.length;i++){
for(int j = i+1;j<a.length;j++){
int temp = a[i];
if(a[j] < temp){
a[i] = a[j];
a[j] = temp;
}
}
}
//快速排序
public void sort(int[] a,int m,int n){
int i = m;
int j = n;
while(i != j ){
for(;j>m;j--){
if(i == j){
break;
}
if(a[i] > a[j]){
int temp = a[j];
a[j] = a[i];
a[i] = temp;
break;
}
}
for(;i<n;i++){
if(i == j){
break;
}
if(a[i] > a[j]){
int temp = a[j];
a[j] = a[i];
a[i] = temp;
break;
}
}
}
if(i<n)
sort(a,i+1,n);
if(j>m)
sort(a,m,j-1);
}
//归并排序
public static void sort(int[] data,int left,int right){
if(left == right)
return;
int mid = (left+right)/2;
sort(data,left,mid);
sort(data,mid+1,right);
merge(data,left,mid,right);
print(data);
}
public static void merge(int[] data,int left,int mid,int right){
int[] temp = new int[data.length];
int third = left;
int tmp = left;
int center = mid+1;
while(left<=mid && center<=right){
if(data[left]<=data[center]){
temp[third++] = data[left++];
}else{
temp[third++] = data[center++];
}
}
while(left<=mid){
temp[third++] = data[left++];
}
while(center<=right){
temp[third++] = data[center++];
}
while(tmp<=right){
data[tmp] = temp[tmp++];
}
}
//二分查找
public int search(int[] a,int m,int n){
int k = (m+n)>>1;
if(b>a[k])
k = search(a,k+1,n);
else if(b<a[k])
k = search(a,m,k-1);
return k;
}
//插入排序
int a[] = {5,4,3,6,7,9,2,1,8};
for(int i=1;i<a.length;i++){
for(int j =i;j>0;j--){
if(a[j]<a[j-1]){
int tmp = a[j];
a[j] = a[j-1];
a[j-1]= tmp;
}else{
break;
}
}
}
后面会继续补充哒