----------- android培訓、java培訓、java學習型技術博客、期待與您交流! ------------
程序如下:
選擇排序與冒泡排序的優化:
/*
需求:對數組實現排序{5,2,9,1,4,6,1}.使用選擇排序 2.使用冒泡排序
思路:(選擇排序)
1.定義一個函數用於實現數組的排序功能
2.選擇數組的第一個數與其他數比較,存儲較小的數到第一個數中
3,選擇數組的第二個數與後面的數比較,存儲較小的數到選擇的數中
4,依次比較到length-1上
步驟:
1定義一個函數SelectSort返回類型爲void,參數爲int arr[]
2,用for循環依次比較數,將較小的值存入比較數中。
*/
/*
需求:對數組實現排序{5,2,9,1,4,6,1}
思路:使用冒泡排序
1.定義一個函數用於實現數組的排序
2,對相鄰的數組數值進行比較,將較大的值存儲在角標+1的數組中,數組最後的值存儲最大值
3,不斷循環比較,得出結果
步驟:
1,定義一個函數BubbleSort,返回類型爲void,參數是int[] arr;
2,使用for循環一次比較相鄰數組角標,將較大的值存儲到角標較大的數組位置中,
存到最後是最大值。
*/
/*
位置置換功能
需求:
優化,將滿足條件的元素進行位置的置換
思路:
將位置置換的代碼抽取取來,定義一個函數實現它的功能
步驟:
定義一個函數swap(),返回類型void,參數有int[] arr,int a,int b.
將置換代碼,copy到函數中,其他代碼用函數代替
*/
import java.util.*;
class ArraySort
{
/*
位置置換函數實現
*/
public static void swap(int[] arr,int i,int j)
{
if(arr[i]>arr[j])
{
int temp=0;
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
//選擇排序函數實現
public static void SelectSort(int arr[])
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<=arr.length-1;j++)
{
swap(arr,i,j);
}
}
}
//冒泡排序函數實現(逆序)
public static void BubbleSort(int[] arr)
{
for (int i=0;i<arr.length ;i++ )
{
for(int j=0;j<arr.length-1-i;j++)
{
/*
if(arr[j]<arr[j+1])//正,逆序可以通過改變<,>號完成。
{
int temp=0;
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}*/
swap(arr,j,j+1);
}
}
}
//打印數組函數是實現
public static void PrintArray(int[] arr)
{
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1)
System.out.print(arr[i]+", ");
else
System.out.println(arr[i]);
}
}
public static void main(String[] args)
{
int[] arr={5,2,9,1,4,6,1};
SelectSort(arr);//選擇排序
// Arrays.sort(arr);//開發用註釋
PrintArray(arr);//打印數組
int[] arr1={5,2,10,3,4,6,1};
BubbleSort(arr1);//冒泡排序
PrintArray(arr1);
}
}