OC

Knowledge OS
登录 注册
全部话题 移民 创业 iOS Mac Objective-C Swift Android 招聘 求职

在学习 swift ,实现了 Array 的 sort 方法 , 请大家帮忙看看哪里不对,

golden05
golden05 发布于 2014年12月15日 | 更新于 2014年12月15日
无人欣赏。

import UIKit

import Foundation

extension Array {

mutating func order(prep: (T,T) -> Bool )-> (Array) {
 //定义一个临时数组
 var temp = [T]()
 //如果当前数组计数小于2个,就返回自身
 if self.count < 2 {
 return self
 }else {
 //循环当前数组
 do {
 //取出值放入变量
 var index = 0
 var orderest = self[index]
 //取出数组标号放入变量
 var indexOrderest = index
 //循环当前数组,初始值为第二个数组值
 for var inde = index+1 ; inde < self.count; ++inde {
 //根据闭包比较的结果存放比较值
 orderest = prep(orderest,self[inde]) ? orderest : self[inde]
 indexOrderest = prep(orderest,self[inde]) ? indexOrderest : inde
 }
 //将循环一遍的结果值放入临时数组
 temp.append(orderest)
 //删除原来数组的对应值
 self.removeAtIndex(indexOrderest)
 } while self.count > 1
 //将最后一个传到临时组
 temp.append(self[1])
 self = temp
 return self
 }

}

共1条回复
楼长 ·
amosji 回复于 2014年12月15日

三个comments:

  • 选择排序太慢
  • 一定要用选择排序的话,可以不用临时数组
  • 变量名起的挺难懂的
登录 或者 注册

AltStyle によって変換されたページ (->オリジナル) /