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 }