rust实现希尔排序算法

pub fn shell_sort(arr: &mut [i32]) {
    let len = arr.len() as i32;
    let mut h: i32 = 1;
    while h <= len / 3 {
        h = h * 3 + 1;
    }
 
    while h > 0 {
        for i in h..len {
            let mut j = i;
            let temp = arr[i as usize];
            while j >= h && arr[(j - h) as usize] > temp {
                arr[j as usize] = arr[(j - h) as usize];
                j -= h;
            }
            arr[j as usize] = temp;
        }
        h = (h - 1) / 3;
    }
}
 
fn main() {
    let mut arr = [12, 34, 54, 2, 3];
    shell_sort(&mut arr);
    println!("{:?}", arr);
}

相关推荐

  1. rust实现排序算法

    2024-04-03 15:46:02       17 阅读
  2. 排序算法——排序

    2024-04-03 15:46:02       43 阅读
  3. 排序算法排序

    2024-04-03 15:46:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 15:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 15:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 15:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 15:46:02       20 阅读

热门阅读

  1. 七彩云转码系统v12.8二开正式版发布

    2024-04-03 15:46:02       14 阅读
  2. 宝塔面板CentOS Stream 8 x86 下如何安装openlitespeed

    2024-04-03 15:46:02       12 阅读
  3. 【Python BUG】局域网内远程连接mysql错误:1130

    2024-04-03 15:46:02       16 阅读
  4. AI大模型学习的理论基础

    2024-04-03 15:46:02       13 阅读
  5. 26.活锁、饥饿锁

    2024-04-03 15:46:02       14 阅读
  6. JVM为什么使用元空间替换了永久代

    2024-04-03 15:46:02       11 阅读