常见排序——Java实现

package struct;

/**
 * 
 * @作者:dyy
 * @公司:陕西科技大学
 * @修改日期:
 * @邮箱:[email protected]
 * @描述:Java实现几种常见排序
 */


//选择排序类
class SelectSort{
	public void selectSort(int[] arr){
		for(int i = 0;i < arr.length; i++){
			int currentMax = i;//记录当前的最大值下标
			for(int j = i + 1;j < arr.length;j++){
				//找到最大值下标
				if(arr[j] > arr[currentMax]){
					currentMax = j;
				}
			}
			int temp = arr[i];
			arr[i] = arr[currentMax];
			arr[currentMax] = temp;
		}
	}
	public void print(int[] arr){
		for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
	}
}


//冒泡排序类
class BubbleSort{
	    //冒泡排序的实现
		public void bubbleSort(int[] arr){
			for(int i = 0;i < arr.length - 1;i++){
				for(int j = 0;j < arr.length - 1 - i;j++){
					if(arr[j] < arr[j+1]){
						int temp = arr[j];
						arr[j] = arr[j+1];
						arr[j+1] = temp;
					}
				}
			}
		}
		//打印数组
		public void print(int[] a){
			for(int i =0 ;i<a.length;i++){
				System.out.print(a[i]+" ");
			}
		}
}


//插入排序
class InsertSort{
	public void insertSort(int[] arr){
		for(int i = 0; i < arr.length - 1;i++){
			//将第一个元素当作排好序的
			int j;
			int insert = arr[i];
			for(j = i;j > 0 && insert>arr[j-1];j--){
				arr[j] = arr[j-1];
			}
			arr[j] = insert;
		}
	}
	
	//打印数组
			public void print(int[] a){
				for(int i =0 ;i<a.length;i++){
					System.out.print(a[i]+" ");
				}
			}
}
 
 
public class TestVeriousSort {
	public static void main(String[] args) {
		int[] arr1 = {13,2,6,34,1,4,9,7,5};
		//选择排序
		System.out.println("选择排序"+"\n");
		SelectSort obj = new SelectSort();
		System.out.println("初始的数组:");
		obj.print(arr1);
		System.out.println("\n"+"排序后的数组:");
		obj.selectSort(arr1);
		obj.print(arr1);
		
		//冒泡排序
		System.out.println("\n"+"冒泡排序"+"\n");
		BubbleSort obj1 = new BubbleSort();
		System.out.println("初始的数组:");
		obj1.print(arr1);
		System.out.println("\n"+"排序后的数组:");
		obj1.bubbleSort(arr1);
		obj1.print(arr1);
		
		//插入排序
		System.out.println("\n"+"冒泡排序"+"\n");
		InsertSort obj2 = new InsertSort();
		System.out.println("初始的数组:");
		obj2.print(arr1);
		System.out.println("\n"+"排序后的数组:");
		obj2.insertSort(arr1);
		obj2.print(arr1);
	}
}
未完待续。

猜你喜欢

转载自blog.csdn.net/qq_40409115/article/details/79967015