首页 > 代码库 > 六种常见排序算法的java实现

六种常见排序算法的java实现

package edu.cn.ysw;


//八种排序算法的实现与效率分析
/*
 * 内排序的种类:
 * 1.插入排序:直接插入排序、希尔排序。
 * 2.选择排序:简单选择排序、堆排序。
 3.交换排序:冒泡排序、快速排序。
 4.归并排序
 5.基数排序
 */
public class SortedMethods {

	/**
	 * @author ysw
	 * @param args
	 * @throws Exception
	 * @since 6/15/2017
	 */
	// 直接插入排序:1.有哨兵;2.无哨兵
	// 无哨兵
	public void insertSortWithoutPre(int arr[]) {
		if (arr == null || arr.length == 0) {
			return;
		}
		// 外层循环定义排序次数
		for (int i = 1; i < arr.length; i++) {
			// 不满足条件则忽略此次判断,相当于continue;
			if (arr[i] < arr[i - 1]) {
				int tempValue = http://www.mamicode.com/arr[i];",");
			}
		}
		System.out.println();
	}

	// 交换数组的元素
	public void swap(int arr[], int i, int j) {
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}

	public static void main(String[] args) {
		SortedMethods sMethods = new SortedMethods();
		// 测试需要的数组
		int array1[] = { 1, 2, 3, 4, 5 };
		int array2[] = { 5, 4, 3, 2, 1 };
		int array3[] = { 4, 5, 2, 1, 7 };
		int array4[] = null;
		int array5[] = new int[0];
		// 测试无哨兵的插入排序

		System.out.println("--------有哨兵插入排序--------------");

		sMethods.insertSortWithoutPre(array1);
		sMethods.printArr(array1);
		sMethods.insertSortWithoutPre(array2);
		sMethods.printArr(array2);
		sMethods.insertSortWithoutPre(array3);
		sMethods.printArr(array3);
		/*
		 * sMethods.insertSortWithoutPre(array4); sMethods.printArr(array4);
		 * sMethods.insertSortWithoutPre(array5); sMethods.printArr(array5);
		 */
		System.out.println("--------无哨兵插入排序------------");
		// 测试有哨兵的插入排序
		sMethods.insertSortWithoutPre(array1);
		sMethods.printArr(array1);
		sMethods.insertSortWithoutPre(array2);
		sMethods.printArr(array2);
		sMethods.insertSortWithoutPre(array3);
		sMethods.printArr(array3);
		System.out.println("----------希尔排序------------");
		// 测试希尔排序
		sMethods.shellSort(array1);
		sMethods.printArr(array1);
		sMethods.shellSort(array2);
		sMethods.printArr(array2);
		sMethods.shellSort(array3);
		sMethods.printArr(array3);
		System.out.println("---------简单选择排序------------");
		sMethods.selectSort(array1);
		sMethods.printArr(array1);
		sMethods.selectSort(array2);
		sMethods.printArr(array2);
		sMethods.selectSort(array3);
		sMethods.printArr(array3);
		System.out.println("---------冒泡排序------------");
		sMethods.bubbleSort(array1);
		sMethods.printArr(array1);
		sMethods.bubbleSort(array2);
		sMethods.printArr(array2);
		sMethods.bubbleSort(array3);
		sMethods.printArr(array3);
		System.out.println("---------快速排序------------");
		sMethods.quickSort(array3, 0, array3.length - 1);
		sMethods.printArr(array3);
		System.out.println("---------归并排序排序------------");
		sMethods.mergeSort(array3);
		sMethods.printArr(array3);

	}

}

  

六种常见排序算法的java实现