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