代碼學習記錄
沒有任何優化,最最基礎的代碼學習。
class Test_Sort
{
public static void main(String[] args)
{
//快排
int [] num = {4,9,6,5,0,7,3,8,2,10,5,1};
quickSort(num, 0 , num.length- 1);
printNum(num);
//冒泡
int [] num_2 = {4,9,6,5,0,7,3,8,2,10,5,1};
bubbleSort(num_2);
printNum(num_2);
//選擇
int [] num_3 = {4,9,6,5,0,7,3,8,2,10,5,1};
selectSort(num_3);
printNum(num_3);
}
//快排
private static void quickSort(int[]num,int l,int r){
if(l < r){
int i = l, j = r;
int temp = num[i];
while(i < j){
while(i < j && num[j] >= temp){
j --;
}
if(i < j){
num[i++]=num[j];
}
while(i < j && num[i] <= temp){
i ++;
}
if (i < j)
{
num[j--] = num[i];
}
}
num[i] = temp;
quickSort(num,l,i-1);
quickSort(num,i+1,r);
}
}
//冒泡排序
private static void bubbleSort(int[]num){
for (int i = 0; i < num.length-1; i ++ )
{
for (int j = 0; j < num.length - i - 1 ; j ++)
{
exchange(num,j,j+1);//相鄰位置比較交換
}
}
}
//選擇排序
private static void selectSort(int[]num){
for (int i = 0;i < num.length - 1 ; i ++ )
{
for (int j = i+1; j < num.length;j ++ )
{
exchange(num,i,j);
}
}
}
//交換數字
private static void exchange(int[]num,int i,int j){
if( num [i] >= num[j]){
int temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
//打印
private static void printNum(int[] num){
for(int m : num){
System.out.print(m+", ");
}
System.out.println("");
}
}