用rust编写简单计算机和排序
时间: 2024-11-06 21:21:17 浏览: 0
在Rust中编写一个简单的计算器程序和排序算法,我们可以分别来看这两个部分。
首先,创建一个计算器(Calculator)的基本结构:
```rust
// 定义基本的数据类型
type Operator = enum {
Add,
Subtract,
Multiply,
Divide,
}
// 计算函数,假设只处理整数
fn calculate(num1: i32, num2: i32, operator: Operator) -> i32 {
match operator {
Operator::Add => num1 + num2,
Operator::Subtract => num1 - num2,
Operator::Multiply => num1 * num2,
Operator::Divide => if num2 != 0 { num1 / num2 } else { panic!(" Division by zero is not allowed! ") },
}
}
```
接下来,实现一个简单的排序函数,比如快速排序(QuickSort):
```rust
use std::cmp::Ordering;
// 快速排序函数
fn quick_sort(arr: &mut [i32]) {
if arr.len() <= 1 {
return;
}
let pivot = arr[0];
let (less_than_pivot, greater_than_pivot) = arr.split(|&x| x.cmp(&pivot).orders());
quick_sort(&mut less_than_pivot);
quick_sort(&mut greater_than_pivot);
arr.copy_from_slice(less_than_pivot);
arr.push(pivot);
arr.extend(less_than_pivot);
}
fn main() {
let mut numbers = vec![4, 2, 9, 6, 5, 8, 1, 7, 3];
println!("Before sorting: {:?}", numbers);
quick_sort(&mut numbers);
println!("After sorting: {:?}", numbers);
}
```
在这个例子中,`calculate`函数用于执行基本的数学运算,而`quick_sort`则实现了经典的快速排序算法对数组进行排序。
阅读全文