我正在学习算法并尝试使用Swift交换到数组中的整数,我知道使用'swap'函数是有效的,但我尝试学习不同的方法.所以我尝试了不同的方法,我不明白一件事 - 我有一个200个整数的数组,当我使用这个方法时:
func selectionSort(var array: [Int]) {
print("Selection Sort")
for i in 0..<array.count {
for j in i+1..<array.count {
if array[j] < array[i] {
let temp = array[j] //runs 7282 times
array[j] = array[i] // runs 7282 times
array[i] = temp // runs 7282 times
}
}
}
print(array)
}
Run Code Online (Sandbox Code Playgroud)
它运行7秒,交换代码运行7282(左右)次,但是当我使用它时:
func selectionSort(var array: [Int]) {
print("Selection Sort")
for i in 0..<array.count {
for j in i+1..<array.count {
if array[j] < array[i] {
array.insert(array[j], atIndex: i)
array.removeAtIndex(j+1)
}
} …Run Code Online (Sandbox Code Playgroud) 我使用 AVFoundation 创建一个自定义视频录制应用程序。问题是当录制达到 13 秒长度时,声音从结果视频中完全消失。我用代码设置相机:
private func configure(_ mode: CameraMode) {
guard let devices = AVCaptureDevice.devices(withMediaType: AVMediaTypeVideo) as? [AVCaptureDevice] else {return}
for device in devices {
if device.position == .back {
do {
let input = try AVCaptureDeviceInput(device: device)
if session.canAddInput(input) {
session.addInput(input)
}
configureVideoOutput(for: device)
session.startRunning()
} catch (let error) {
print(error)
}
}
}
}
private func configureVideoOutput(for device: AVCaptureDevice) {
if device.hasMediaType(AVMediaTypeVideo) && session.canAddOutput(sessionVideoOutput) {
session.beginConfiguration()
session.sessionPreset = AVCaptureSessionPresetHigh
guard let devices = AVCaptureDevice.devices(withMediaType: AVMediaTypeAudio) as? [AVCaptureDevice] …Run Code Online (Sandbox Code Playgroud)