Swift _ 冒泡排序 (2016-07-13)

2016-07-13  本文已影响44人  欧币杰昔

冒泡排序:
原理不好解释,就是循环将当前数与下一个数比较大小,根据需要(升序或者降序)交换位置

//完成两个数的交换
func switchNum(inout num1:Double,inout num2:Double)
{
    num1 = num1 + num2
    num2 = num1 - num2
    num1 = num1 - num2
}


/**
 冒泡排序

 - parameter arr:    数组
 - parameter shunxu: 排序顺序(1为升序,2为降序)
 */
func maopao(inout arr:[Double],shunxu:Int)
{
    for var i:Int = 0 ; i < arr.count - 1 ; i++
    {
        for var j:Int = 0;j < arr.count - i - 1; j++
        {
            if shunxu == 1
            {
                if arr[j] > arr[j+1]
                {
                    switchNum(&arr[j], num2: &arr[j+1])
                }
            }
            else
            {
                if arr[j] < arr[j+1]
                {
                    switchNum(&arr[j], num2: &arr[j+1])
                }
            }
        
        }
    }
}
//给个数组,进行排序
var arr:[Double] = [9,41,2,8,63,45,14]
maopao(&arr, shunxu: 1) //升序
print(arr)
maopao(&arr, shunxu: 2) //降序
print(arr)

输出:
[2.0, 8.0, 9.0, 14.0, 41.0, 45.0, 63.0]
[63.0, 45.0, 41.0, 14.0, 9.0, 8.0, 2.0]
Program ended with exit code: 0

上一篇 下一篇

猜你喜欢

热点阅读