Skip to content

Instantly share code, notes, and snippets.

@ycui1
Last active January 19, 2020 11:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ycui1/ca5110463bd5e6029a900223046e017b to your computer and use it in GitHub Desktop.
Save ycui1/ca5110463bd5e6029a900223046e017b to your computer and use it in GitHub Desktop.
compareOperations(name: "Initialization Without Elements", repeats: 10000, arrayOperation: {
let _ : [Int] = []
}) {
let _ : Set<Int> = []
}
compareOperations(name: "Initialization With Elements", repeats: 10000, arrayOperation: {
let _ : [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
}) {
let _ : Set<Int> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
}
let arrayToCheck : [Int] = Array(Range(1...100))
let setToCheck : Set<Int> = Set(Range(1...100))
compareOperations(name: "Iterate Elements", repeats: 10000, arrayOperation: {
for _ in arrayToCheck {
}
}) {
for _ in setToCheck {
}
}
compareOperations(name: "Count Elements", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.count
}) {
let _ = setToCheck.count
}
compareOperations(name: "Check If Empty", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.isEmpty
}) {
let _ = setToCheck.isEmpty
}
compareOperations(name: "Check If Element Exists (When True)", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.contains(10)
}) {
let _ = setToCheck.contains(10)
}
compareOperations(name: "Check If Element Exists (When False)", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.contains(104)
}) {
let _ = setToCheck.contains(104)
}
compareOperations(name: "Find Element Index (When Found)", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.firstIndex(of: 10)
}) {
let _ = setToCheck.firstIndex(of: 10)
}
compareOperations(name: "Find Element Index (When nil)", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.firstIndex(of: 104)
}) {
let _ = setToCheck.firstIndex(of: 104)
}
compareOperations(name: "Find min", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.min()
}) {
let _ = setToCheck.min()
}
compareOperations(name: "Find max", repeats: 10000, arrayOperation: {
let _ = arrayToCheck.max()
}) {
let _ = setToCheck.max()
}
compareOperations(name: "Sort Elements", repeats: 10000, arrayOperation: {
let arrayToCheck: [Int] = [3, 15, 4, 5, 1, 12, 11, 2, 7, 9, 10, 14, 6, 8, 13]
let _ = arrayToCheck.sorted()
}) {
let setToCheck: Set<Int> = [3, 15, 4, 5, 1, 12, 11, 2, 7, 9, 10, 14, 6, 8, 13]
let _ = setToCheck.sorted()
}
compareOperations(name: "Add Element", repeats: 10000, arrayOperation: {
var arrayToManipulate: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
let _ = arrayToManipulate.append(101)
}) {
var setToManipulate: Set<Int> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
let _ = setToManipulate.insert(101)
}
compareOperations(name: "Remove First Element", repeats: 10000, arrayOperation: {
var arrayToManipulate: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
let _ = arrayToManipulate.removeFirst()
}) {
var setToManipulate: Set<Int> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
let _ = setToManipulate.removeFirst()
}
compareOperations(name: "Remove Element By Index", repeats: 10000, arrayOperation: {
var arrayToManipulate: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
if let index = arrayToManipulate.firstIndex(of: 10) {
arrayToManipulate.remove(at: index)
}
}) {
var setToManipulate: Set<Int> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
if let index = setToManipulate.firstIndex(of: 10) {
setToManipulate.remove(at: index)
}
}
compareOperations(name: "Remove All Elements", repeats: 10000, arrayOperation: {
var arrayToManipulate: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
arrayToManipulate.removeAll()
}) {
var setToManipulate: Set<Int> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
setToManipulate.removeAll()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment