Compare commits

...

4 Commits

Author SHA1 Message Date
7b032a1ef4 Ordenar por maximo en Rust 2026-05-09 17:03:37 +02:00
0c9bcca1ae Ordenar por maximo en Go 2026-05-09 17:03:18 +02:00
1ab98c2047 Ordenar por maximo en Julia 2026-05-09 17:03:04 +02:00
2f401b763a Ordenar por maximo en Python 2026-05-09 17:02:48 +02:00
4 changed files with 120 additions and 0 deletions

62
src/Go/002.go Normal file
View File

@@ -0,0 +1,62 @@
package main
import (
"fmt"
"sort"
)
func maxIntSlice(lst []int) int {
m := lst[0]
for _, v := range lst[1:] {
if v > m {
m = v
}
}
return m
}
func order_by_max_i32(lst [][]int) [][]int {
result := append([][]int(nil), lst...) // copy outer slice (like Python sorted)
sort.SliceStable(result, func(i int, j int) bool {
return maxIntSlice(result[i]) < maxIntSlice(result[j])
})
return result
}
func maxRune(s string) rune {
var m rune
for _, r := range s {
if r > m {
m = r
}
}
return m
}
func order_by_max_str(lst []string) []string {
result := append([]string(nil), lst...) // copy (like Python sorted)
sort.SliceStable(result, func(i int, j int) bool {
return maxRune(result[i]) < maxRune(result[j])
})
return result
}
func main() {
check := [][]int{{3, 2}, {6, 7, 5}, {1, 4}}
fmt.Println(order_by_max_i32(check)) // [[3,2],[1,4],[6,7,5]]
check = [][]int{{1}, {0, 1}}
fmt.Println(order_by_max_i32(check)) // [[1],[0,1]]
check = [][]int{{0, 1}, {1}}
fmt.Println(order_by_max_i32(check)) // [[0,1],[1]]
checkStr := []string{"este", "es", "el", "primero"}
fmt.Println(order_by_max_str(checkStr)) // ["el","primero","es","este"]
}

16
src/Julia/002.jl Normal file
View File

@@ -0,0 +1,16 @@
function order_by_max(lst)
return sort(lst, by=maximum)
end
check = [[3,2],[6,7,5],[1,4]]
println(order_by_max(check)) # [[3,2],[1,4],[6,7,5]]
check = [[1],[0,1]]
println(order_by_max(check)) # [[1],[0,1]]
check = [[0,1],[1]]
println(order_by_max(check)) # [[0,1],[1]]
check = ["este","es","el","primero"]
println(order_by_max(check)) # ["el","primero","es","este"]

15
src/Python/002.py Normal file
View File

@@ -0,0 +1,15 @@
def order_by_max(lst: list) -> list:
return sorted(lst, key=max)
check = [[3,2],[6,7,5],[1,4]]
print(order_by_max(check)) # [[3,2],[1,4],[6,7,5]]
check = [[1],[0,1]]
print(order_by_max(check)) # [[1],[0,1]]
check = [[0,1],[1]]
print(order_by_max(check)) # [[0,1],[1]]
check = ["este","es","el","primero"]
print(order_by_max(check)) # ["el","primero","es","este"]

27
src/Rust/002.rs Normal file
View File

@@ -0,0 +1,27 @@
fn order_by_max_i32(lst: &[Vec<i32>]) -> Vec<Vec<i32>> {
let mut sorted_lst = lst.to_vec();
sorted_lst.sort_by_key(|v| v.iter().max().cloned()); // stable sort by max element
return sorted_lst
}
fn order_by_max_str<'a>(lst: &[&'a str]) -> Vec<&'a str> {
let mut sorted_lst = lst.to_vec();
sorted_lst.sort_by_key(|s| s.chars().max()); // stable sort by max char
return sorted_lst
}
fn main() {
let check = vec![vec![3,2], vec![6,7,5], vec![1,4]];
println!("{:?}", order_by_max_i32(&check)); // [[3,2],[1,4],[6,7,5]]
let check = vec![vec![1], vec![0,1]];
println!("{:?}", order_by_max_i32(&check)); // [[1],[0,1]]
let check = vec![vec![0,1], vec![1]];
println!("{:?}", order_by_max_i32(&check)); // [[0,1],[1]]
let check = vec!["este","es","el","primero"];
println!("{:?}", order_by_max_str(&check)); // ["el","primero","es","este"]
}