排序算法分析

一,冒泡排序

冒泡排序的原理是通过一次嵌套的循环,是数组内的元素与和它临近的元素进行比较,如果后面的值小于前面元素值的话,则两个元素交换地址空间。

代码示例(Java版)如下

public static int[] bubbleSort(int[] originalArray) {

		int tmp;
		
		for (int i = 0; i < (originalArray.length - 1); i++) {
			for (int j = 0; j < (originalArray.length-1); j++) {
				if(originalArray[j+1] < originalArray[j]){
					tmp = originalArray[j+1];
					originalArray[j+1] = originalArray[j];
					originalArray[j] = tmp;
				}
			}
		}

		return originalArray;

	}

二,选择排序

选择排序算法的原理是,循环数组,从当前元素的后续数组序列中选取一个最小值,并将其与当前元素进行交换,知道所有元素都排序完毕。

代码示例(Java版)如下

	public static int[] selectionSort(int[] originalArray) {

		for (int i = 0; i < (originalArray.length - 1); i++) {
			int minIndex = i;
			for (int j = i; j < originalArray.length; j++) {
				if (originalArray[j] < originalArray[minIndex]) {
					minIndex = j;
				}
			}
			int tmp = originalArray[minIndex];
			originalArray[minIndex] = originalArray[i];
			originalArray[i] = tmp;

		}

		return originalArray;

	}

三, 插入排序

插入排序类似于抓扑克牌时候的排序方法,从牌堆顶端抓取一张牌,依次和手中的牌进行比较,并将其插入到合适的位置,该位置后的元素依此向后移动一位。


	public static int[] insertionSort(int[] originalArray) {

		for (int i = 0; i < originalArray.length; i++) {
			for (int j = 0; j < i; j++) {
				if(originalArray[i] <= originalArray[j]){
					int index = j;
					int tmp = originalArray[i];
					while(j


你可能感兴趣的:(数据结构和算法,算法,java)