【非凡程序员】协议、闭包实现冒泡排序

   首先要有协议,所以定义一个bubbleProtocol的协议,然后协议里面有两个属性,一个是排序前的数组,一个是排序后的数组,代码实现如下:

 protocol bubbleProtocol{
    var oldArray : [Int] {get set}
    var newArray : [Int] {get set}
}

    协议定义完之后,要定义一个类、结构体或者枚举来遵守这个协议,所以还需要定义一个类或者其他,代码如下:

 class bubbleClass : bubbleprotocol{
    var oldArray = [2,9,10,20,13,17]
    var newArray = [Int]() 
    func bubbleFunc( sortArray:(prarm:[Int])->[Int])->[Int]{
       newArray=sortArray(prarm:oleArray)
       return newArray
    }   
}

   在bubbleFunc中传入了一个闭包,所以需要实现闭包

 var bubbleTest ={
    (prarm:[Int])->[Int] in 
    var finalArray = param
    for var i=0;i<finalArray.count;i++{
       for var j=i;j<finalArray.cont;j++{
           if finalArray[i]<finalArray[j]
              var temp = finalArray[i]
              finalArray[i]=finalArray[j]
              finalArray[j]=temp
       }
    }
    return finalArray
}

再实例化类,然后调用方法

var bubbleIntance =bubbleClass()
var sortedArray= bubbleIntance.bubbleFunc(bubbleTest)
println(sortedArray)

你可能感兴趣的:(【非凡程序员】协议、闭包实现冒泡排序)