交换排序
冒泡排序:两两交换找出大的值
public int[] sort(int[] s){
for(int i=0;i<s.length-1;i++){//外出循环 多少趟
for (int j=0;j<s.length-1-i;j++ ){ //内层做两两交换,找出最大的数
if(s[j]>s[j+1]) {
int temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
return s;
}
##快速排序 递归 把数组拆成两部分,一边大一边小
public static void quickSort(int[] arr,int start,int end){
if(start<end){
int stard =arr[start]; //对照数
int low=start;//低指针所在位置
int high=end;//高指针所在位置
while (low<high){
//如果高指针所指的数大于等于对照数
while (low<high&&arr[high]>=stard){
high--;//指针向前移动
}
//如果高指针所指的数小于对照数
arr[low]=arr[high];
//如果低指针所指的数小于等于对照数
while (low<high&&arr[low]<=stard){
low++;//指针向后移动
}
//如果低指针所指的数大于对照数
arr[high]=arr[low];
}
arr[low]=stard;//当循环结束,low=high时,把指针重复位置设置为对照数
quickSort(arr,start,low);
quickSort(arr,low+1,end);
}
}
}