| author | |
| committer | |
| log | 1435604b84dbf338c1b6096f473bc89aef144be0 |
| tree | 17ba68d0c62f57d15f39d5e1a530d4c19c32497e |
| parent | 2a8160e80fc0a03700b83ac9a715f97d1d637f02 |
2 files changed, 26 insertions(+), 6 deletions(-)
std/mem.zig+4-6| ... | @@ -511,9 +511,8 @@ fn testWriteIntImpl() { | ... | @@ -511,9 +511,8 @@ fn testWriteIntImpl() { |
| 511 | 511 | ||
| 512 | pub fn min(comptime T: type, slice: []const T) -> T { | 512 | pub fn min(comptime T: type, slice: []const T) -> T { |
| 513 | var best = slice[0]; | 513 | var best = slice[0]; |
| 514 | var i: usize = 1; | 514 | for (slice[1..]) |item| { |
| 515 | while (i < slice.len) : (i += 1) { | 515 | best = math.min(best, item); |
| 516 | best = math.min(best, slice[i]); | ||
| 517 | } | 516 | } |
| 518 | return best; | 517 | return best; |
| 519 | } | 518 | } |
| ... | @@ -524,9 +523,8 @@ test "mem.min" { | ... | @@ -524,9 +523,8 @@ test "mem.min" { |
| 524 | 523 | ||
| 525 | pub fn max(comptime T: type, slice: []const T) -> T { | 524 | pub fn max(comptime T: type, slice: []const T) -> T { |
| 526 | var best = slice[0]; | 525 | var best = slice[0]; |
| 527 | var i: usize = 1; | 526 | for (slice[1..]) |item| { |
| 528 | while (i < slice.len) : (i += 1) { | 527 | best = math.max(best, item); |
| 529 | best = math.max(best, slice[i]); | ||
| 530 | } | 528 | } |
| 531 | return best; | 529 | return best; |
| 532 | } | 530 | } |
std/sort.zig+22| ... | @@ -1132,3 +1132,25 @@ fn fuzzTest(rng: &std.rand.Rand) { | ... | @@ -1132,3 +1132,25 @@ fn fuzzTest(rng: &std.rand.Rand) { |
| 1132 | } | 1132 | } |
| 1133 | } | 1133 | } |
| 1134 | } | 1134 | } |
| 1135 | |||
| 1136 | pub fn min(comptime T: type, items: []T, lessThan: fn(lhs: &const T, rhs: &const T)->bool) -> T { | ||
| 1137 | var i: usize = 0; | ||
| 1138 | var smallest = items[0]; | ||
| 1139 | for (items[1..]) |item| { | ||
| 1140 | if (lessThan(item, smallest)) { | ||
| 1141 | smallest = item; | ||
| 1142 | } | ||
| 1143 | } | ||
| 1144 | return smallest; | ||
| 1145 | } | ||
| 1146 | |||
| 1147 | pub fn max(comptime T: type, items: []T, lessThan: fn(lhs: &const T, rhs: &const T)->bool) -> T { | ||
| 1148 | var i: usize = 0; | ||
| 1149 | var biggest = items[0]; | ||
| 1150 | for (items[1..]) |item| { | ||
| 1151 | if (lessThan(biggest, item)) { | ||
| 1152 | biggest = item; | ||
| 1153 | } | ||
| 1154 | } | ||
| 1155 | return biggest; | ||
| 1156 | } |