#algorithm #diff #lcs #slice #difference #compute #wu

wu-diff

使用wu算法(O(NP))计算两个切片之间的差异

3个版本

使用旧的Rust 2015

0.1.2 2019年10月15日
0.1.1 2018年10月6日
0.1.0 2018年6月25日

算法类别中排名第830

Download history 585/week @ 2024-04-23 335/week @ 2024-04-30 804/week @ 2024-05-07 854/week @ 2024-05-14 454/week @ 2024-05-21 368/week @ 2024-05-28 365/week @ 2024-06-04 292/week @ 2024-06-11 267/week @ 2024-06-18 379/week @ 2024-06-25 245/week @ 2024-07-02 427/week @ 2024-07-09 622/week @ 2024-07-16 511/week @ 2024-07-23 619/week @ 2024-07-30 323/week @ 2024-08-06

每月下载量2,102
10crate使用(6个直接使用)

MIT许可证

34KB
611

wu-diff-rs

使用wu算法(O(NP))计算两个切片之间的差异。

CircleCI Build status

示例

extern crate wu_diff;

use self::wu_diff::*;

fn main() {
    let old = vec!["foo", "bar", "baz"];
    let new = vec!["foo", "baz", "hoge"];

    for diff in wu_diff::diff(&old, &new) {
        match diff {
            DiffResult::Added(a) => {
                let i = a.new_index.unwrap();
                println!("+{} new index = {}", new[i], i)
            }
            DiffResult::Common(c) => {
                let new_index = c.new_index.unwrap();
                let old_index = c.old_index.unwrap();
                println!(
                    " {} old index = {}, new index = {}",
                    new[new_index], old_index, new_index
                )
            }
            DiffResult::Removed(r) => {
                let i = r.old_index.unwrap();
                println!("-{} old index = {}", old[i], i)
            }
        }
    }
}

您还可以按照以下示例运行示例。

rustup run nightly cargo run --example example

许可证

MIT许可证(MIT)

版权所有 © 2018 @bokuweb

任何人都可以免费获得此软件及其相关文档的副本(“软件”),以无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向软件提供的人以这种方式行事,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,无论该责任源于、因之产生或与软件或其使用或其他操作有关。

依赖关系

~0–1.4MB
~30K SLoC