Swift实现Selection Sort选择排序算法的实例讲解
选择排序SelectionSort是一种和插入排序InsertionSort类似的排序方法,它同样只适用于对规模不大的集合进行排序。它的核心思想是,在序列内部,把序列逻辑上分成已排序和未排序两部分,不断找到未排序部分中最符合排序规则的元素,添加进已排序部分,直到序列中所有元素都已经添加到了已排序部分,此时,整个序列就排序完成了。
冒泡排序是两两比较不断交换来实现排序,所以比较繁琐。
而选择排序 则是先选择要交换的那个数,才去交换。这样就可以省去很多不必要的步骤。
Swift版实现示例:
funcselectSort(vararr:[Int])->[Int]{
varmin=0
//只需要n-1趟
forvari=0;i<arr.count-1;++i{
min=i
//从第n+1趟起始找到末尾
forvarj=i+1;j<arr.count;++j{
//找到比min位置更小的,就更新这一趟所找到的最小值的位置
ifarr[j]<arr[min]{
min=j
}
}
//如果min与i不相等,说明有比i位置更小的,所以需要交换
ifmin!=i{
lettemp=arr[i]
arr[i]=arr[min]
arr[min]=temp
}
}
returnarr
}