考虑排序存储在数组A中的n个数:首先找出A中的最小的元素并将其与A[0]中的元素进行交换,接着,找出A中的次最小元素并将其与A[1]中的元素进行交换,对A中的前n-1个元素按该方式继续。该算法成为选择排序。
代码如下:
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; a.sort(function(){return Math.random()>0.5;}); console.log(a.join("\t")); selectionSort(a); console.log(a.join("\t")); function selectionSort(a){ var len = a.length; for(var i = 0; i < len - 1; i++){ var mi = i; var m = a[i]; for(var j = i + 1; j < len; j++){ if(a[j] < m){ m = a[j]; mi = j; } } a[mi] = a[i]; a[i] = m; } }
时间复杂度:O(n^2)。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。