swift版本的快排和归并排序
class SortClass: NSObject { func quickSort(inout array:[Int]){ self.quick(&array, left: 0, right: array.count-1) } func quickMain(inout array:[Int],var left:Int,var right:Int)->Int{ var srcLeft=array[left] while(left<right){ while(left<right&&array[right]>=srcLeft){ right-- } array[left]=array[right] while(left<right&&array[left]<=srcLeft){ left++ } array[right]=array[left] } array[left]=srcLeft return left } func quick(inout array:[Int],var left:Int,var right:Int){ if(left<right){ var middle=self.quickMain(&array, left: left, right: right) self.quick(&array, left: left, right: middle-1) self.quick(&array, left: middle+1, right: right) } } func mergerSort(inout array:[Int]){ var tempArray=[Int](count: array.count, repeatedValue: 1) self.merger(&array, tempArray: &tempArray, left: 0, right: array.count-1) } func merger(inout array:[Int],inout tempArray:[Int],var left:Int,var right:Int){ if(left<right){ var middle=(left+right)/2 self.merger(&array, tempArray: &tempArray, left: left, right: middle) self.merger(&array, tempArray: &tempArray, left: middle+1, right: right) self.mergerMain(&array, tempArray: &tempArray, leftStart: left, leftEnd: middle, rightStart: middle+1, rightEnd: right) } } func mergerMain(inout array:[Int],inout tempArray:[Int],var leftStart:Int,var leftEnd:Int,var rightStart:Int,var rightEnd:Int){ var index=leftStart var recoderLeftStart=leftStart; while(leftStart<=leftEnd&&rightStart<=rightEnd){ if(array[leftStart]<=array[rightStart]){ tempArray[index++]=array[leftStart++] }else{ tempArray[index++]=array[rightStart++] } } while(leftStart<=leftEnd){ tempArray[index++]=array[leftStart++] } while(rightStart<=rightEnd){ tempArray[index++]=array[rightStart++] } for(var i=recoderLeftStart;i<=rightEnd;i++){ array[i]=tempArray[i] } } }
学习了swift总体感觉不错.吐嘈两点,1编码的时候智能提示不友好,2希望后续版本能有方法访问权限修饰关键字添加。