Retour vers: Copie et Concaténation de file
Le programme ci-dessous, permet la fusion de deux files ordonnées conformément au schéma de programme Interclassement.
func Interclassement(file1: File_Entier ,file2: File_Entier ,inout file3: File_Entier) { var nouvelleCollection: File_Entier = InitialiserCollection() Premier(file1) Premier(file2) while (!Dernier(file1)) && (!Dernier(file2)) { if InferOuEgal(Element(file1),element: Prendre(file2)) { nouvelleCollection = Ranger(nouvelleCollection, element: Prendre(file1)) Avancer(file1) } else { nouvelleCollection = Ranger(nouvelleCollection, element: Prendre(file2)) Avancer(file2) } } while !Dernier(file1) { nouvelleCollection = Ranger(nouvelleCollection, element: Prendre(file1)) Avancer(file1) } while !Dernier(file2) { nouvelleCollection = Ranger(nouvelleCollection, element: Prendre(file2)) Avancer(file2) } file3 = nouvelleCollection }
Une version pure Swift du même schéma de programme
func Interclassement(file1: [Int],file2: [Int], inout file3: [Int]) { var valeur1 : Entier = 0 var valeur2 : Entier = 0 var nouvelleCollection = [Int]() var index1 = 0 var index2 = 0 let nombreElement1 = file1.count let nombreElement2 = file2.count while (index1 < nombreElement1) && (index2 < nombreElement2) { valeur1 = file1[index1] valeur2 = file2[index2] if valeur1 <= valeur2 { nouvelleCollection.append(valeur1) valeur1 = file1[index1] index1 += 1 } else { nouvelleCollection.append(valeur2) valeur2 = file2[index2] index2 += 1 } } while (index1 < nombreElement1) { valeur1 = file1[index1] nouvelleCollection.append(valeur1) index1 += 1 } while (index2 < nombreElement2) { valeur2 = file1[index2] nouvelleCollection.append(valeur2) index1 += 1 } file3 = nouvelleCollection }