黑马程序员-数组排序-选择排序与冒泡排序

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

}

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