选择排序

算法流程:

           找到数组中最小的那个元素,将其与数组的第一个元素交换位置;

           在剩下的元素中找到最小的,并与数组的第二个元素交换;

           重复上述步骤。

算法复杂度:

准确来说是N-1次交换,前面N-1个元素已经排列完成,最后一个元素则不需要在进行排列。

算法稳定性:

选择排序是不稳定的,如序列{7,4,8,5,7,0,6,9},选择排序完成后,第一个7将出现在第二个7的后面。

实现代码:

	// Selection sort algorithm
	public static void selectionSort(int[] a) {

		int N = a.length;
		int min;              // Record the index of the least element
		int temp;

		for (int i=0; i<N-1; i++) {

			min = i;
			for (int j=i+1; j<N; j++) {
				if (a[j] < a[min])
					min = j;
			}

			temp = a[i];
			a[i] = a[min];
			a[min] = temp;
		}
	}

  

原文地址:https://www.cnblogs.com/deltadeblog/p/8215428.html