package com.kncok0801am.SortTest;
/**
* 复习一下冒泡排序
* */
public class BubbleSort {
static int [] arr = new int[10];
static {
for(int i=0;i<10;i++){
arr[i] = (int) (Math.random()*100+100);
}
}
public static void main(String[] args) {
BubbleSort.b_sort();
}
//冒泡
public static void b_sort(){
for(int i=0; i<10; i++){
for(int j=i; j<10; j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
System.out.print(arr[i]+"\t");
}
}
}
package com.kncok0801am.SortTest;
public class QuickSort {
public static void main(String[] args) {
int[] arr = {4,45,34,67,85,21,74,24,84,23};
q_sort(arr, 0, 9);
for(int i=0;i<10;i++){
System.out.print(arr[i]+"\t");
}
}
//快速排序
static void q_sort(int s[], int a, int b)
{
if (a < b)
{
//Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1
int i = a, j = b, x = s[a];
while (i < j)
{
while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
s[i++] = s[j];
while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
s[j--] = s[i];
}
s[i] = x;
q_sort(s, a, i - 1); // 递归调用
q_sort(s, i + 1, b);
}
}
}