Swift程式:將集合分成兩半
在Swift中,集合用於建立無序的唯一元素集合。要將集合分成兩半,我們使用一種方法,首先使用整數除法方法確定給定集合的中點,然後遍歷集合,根據與中點相關的索引將元素插入到前半部分或後半部分集合中。
例如:
Original Set - [2, 4, 5, 6, 7, 1] Set1 - [2, 4, 5] Set2 - [6, 7, 1]
演算法
步驟1 - 建立一個函式,該函式將集合作為引數,然後將集合分成兩半,並將結果以元組的形式返回。
步驟2 - 在函式內部,查詢給定集合的大小。
步驟3 - 使用整數除法方法查詢給定集合的中點。
步驟4 - 建立兩個新的集合,名為firstHalfSet和secondHalfSet,用於儲存給定集合的前半部分和後半部分。
步驟5 - 現在執行for-in迴圈,根據中點將資料插入firstHalfSet和secondHalfSet。
步驟6 - 返回一個包含firstHalfSet和secondHalfSet的元組。
步驟7 - 現在在函式外部建立一個整數型別的集合。
步驟8 - 呼叫上面建立的函式並將集合作為引數傳遞。
步驟9 - 列印輸出。
示例
在下面的示例中,我們將建立一個名為splitSet()的使用者定義函式。它將集合作為引數,並返回兩個集合的元組。在函式內部,我們首先使用count屬性查詢集合的大小,然後透過將集合的大小除以2來查詢中點。然後,我們建立兩個集合來儲存集合的前半部分和後半部分。然後執行for-in迴圈來迭代集合的每個元素,並檢查當前索引是否小於中點。如果是,則將currentIndex處存在的元素輸入firstHalfSet。否則,將元素輸入secondHalfSet。在每次迭代中,當前索引的值增加一,此過程一直持續到給定集合的末尾。然後返回一個包含兩個集合的元組。在函式外部,我們建立一個整數型別的集合:[99, 22, 33, 66, 11, 55] 並將其傳遞給splitSet(),然後將結果儲存到元組中,然後顯示給定集合的兩半。
import Foundation
import Glibc
// Function to divide the set into two halves
func splitSet(myset: Set<Int>) -> (Set<Int>, Set<Int>) {
let setSize = myset.count
// Midpoint of set
let setMidpoint = setSize / 2
// Creating new sets for storing data
var firstHalfSet: Set<Int> = []
var secondHalfSet: Set<Int> = []
var currentIndex = 0
// Run for-in loop to insert data into new sets according to the midpoint
for number in myset {
if currentIndex < setMidpoint {
firstHalfSet.insert(number)
} else {
secondHalfSet.insert(number)
}
currentIndex += 1
}
return (firstHalfSet, secondHalfSet)
}
// Test case
let mset: Set<Int> = [22, 99, 33, 66, 11, 55, 33]
let (Set1, Set2) = splitSet(myset: mset)
print("Original set is:", mset)
print("First half of the given set:", Set1)
print("Second half of the given set:", Set2)
輸出
Original set is: [11, 66, 22, 99, 55, 33] First half of the given set: [11, 66, 22] Second half of the given set: [99, 33, 55]
結論
這就是我們如何將集合分成兩半的方法。但是,結果集合中元素的順序不一定與原始集合相同,因為集合是無序集合。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP