黑馬程序員-數組排序-選擇排序與冒泡排序

----------- 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);
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章