How to split an array and add the first part to end in Swift

1 Answer

0 votes
class CArray {
	func dispay(_ arr: [Int]) {
	    let size: Int = arr.count;
		var i: Int = 0;
		while (i < size) {
			print(arr[i], terminator: " ");
			i += 1;
		}
	}
	func reverse(_ arr: inout [Int], _ start: Int, _ end: Int) {
		var temp: Int = 0;
		var i: Int = start;
		var j: Int = end;
		while (i <= end && j > i) {
			temp = arr[i];
			arr[i] = arr[j];
			arr[j] = temp;
			i += 1;
			j -= 1;
		}
	}
	func split(_ arr: inout [Int], _ split_point: Int) {
	    let size: Int = arr.count;
		if (size <= 1 && split_point < 1 && split_point >= size) {
			return;
		}
		// reverse first part
		self.reverse(&arr, 0, split_point - 1);
		
		// reverse second part
		self.reverse(&arr, split_point, size - 1);
		
		// reverse all array 
		self.reverse(&arr, 0, size - 1);
		
	}
}

let obj: CArray = CArray();
var arr: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
let split_point: Int = 3;

obj.split(&arr, split_point);
obj.dispay(arr);





/*
run:
         
4 5 6 7 8 9 0 1 2 3 
         
*/

 



answered Nov 30, 2021 by avibootz

Related questions

1 answer 235 views
1 answer 206 views
1 answer 250 views
1 answer 227 views
1 answer 151 views
...