常见的排序算法

选择排序

思路:首先找到数组中最小的那个元素,然后与数组中的第一个元素交换位置,然后找到剩余元素中的最小元素与数组中的第二个元素交换位置。重复进行以上步骤直到完成所有元素的排序。

伪码

class SelectionSort () {
    public static void sort (Caparable[] a) {
	int N = a.length();
	//开始循环数组
	for (int i = 0; i < N; i++) {
	    //min表示最小元素的下标,开始时假设第一个元素就是最小的
	    int min = i;
	    //循环剩余元素,找到最小的元素
	    for (int j = i + 1; j < N; j++) {
		if (a[j] < a[min]) {
		    min = j;//最小元素下标赋给min
		}
		swap(a[i], a[min]);//交换元素
	    }
	}
    }
}

复杂度分析:双层循环,复杂度为n²。


插入排序

   

猜你喜欢

转载自blog.csdn.net/sinat_29718177/article/details/80061789