选择排序
算法流程:
找到数组中最小的那个元素,将其与数组的第一个元素交换位置;
在剩下的元素中找到最小的,并与数组的第二个元素交换;
重复上述步骤。
算法复杂度:
准确来说是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; } }
posted on 2018-01-06 21:38 Deltadeblog 阅读(185) 评论(0) 编辑 收藏 举报