编写一个程序来查找给定数组中的最大子数组。


arr = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
这是一个经典的问题，称为最大子数组问题，可以使用分治算法或Kadane算法来解决。这里是Kadane算法的Python实现：

```
arr = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
max_ending_here = max_so_far = arr[0]
for i in arr[1:]:
    max_ending_here = max(i, max_ending_here+i)
    max_so_far = max(max_so_far, max_ending_here)
print(max_so_far)
```

这将输出给定数组中最大的子数组之和（在这种情况下为6，对应于[4，-1，2，1]）。