package test;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = { 91, 55, 18, 39, 47, 62, 48, 16, 4 };
sort(arr);
}
public static void sort(int[] arr) {
//冒泡排序两层循环
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length -1- i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k]+" ");
}
}
}
package test;
/**快速排序
* 需要两个函数:
① 递归函数 public static void quickSort(int[]n ,int left,int right)
② 分割函数(一趟快速排序函数) public static int partition(int[]n ,int left,int right)
* @author Administrator
*
*/
public class QuickSort {
public static void main(String[] args) {
int [] arr = {49,38,65,97,76,13,27};
quickSort(arr,0,arr.length-1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
public static void quickSort(int[] arr, int left, int right){
int key;
if(left<right){
key=partition(arr, left, right);
quickSort(arr, left, key-1);
quickSort(arr, key+1, right);
}
}
//一趟排序
public static int partition(int[] arr, int left, int right){
int key=arr[left];
while(left<right){
while(left<right&&arr[right]>=key) right--;
arr[left]=arr[right];
while(left<right&&arr[left]<=key) left++;
arr[right]=arr[left];
}
arr[left]=key;
return left;
}
}