范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Rust排序算法选择排序冒泡排序插入排序归并排序

  选择排序pub fn selection_sort(arr:&mut [T]) {     let len = arr.len();     for left in 0..len {         let mut smallest = left;         for right in (left+1)..len {             if arr[right] < arr[smallest] {                 smallest = right;             }         }         arr.swap(smallest, left);     } }  #[cfg(test)] mod tests {     use super::*;      #[test]     fn basic() {         let mut res = vec!["f","d","e","a","c","b"];         selection_sort(&mut res);         assert_eq!(res, vec!["a","b","c","d","e","f"]);     }     #[test]     fn empty() {         let mut res = Vec::::new();         selection_sort(&mut res);         assert_eq!(res, vec![]);     }      #[test]     fn one_element() {         let mut res = vec!["a"];         selection_sort(&mut res);         assert_eq!(res, vec!["a"]);     }      #[test]     fn pre_sorted() {         let mut res = vec!["a","b","c","d"];         selection_sort(&mut res);         assert_eq!(res, vec!["a","b","c","d"]);     } }冒泡排序 pub fn bubble_sort(arr:&mut [T]) {     if arr.is_empty() {         return;     }      let mut sorted = false;     let mut n = arr.len();     while!sorted {         sorted = true;         for i in 0..n-1{             if arr[i] > arr[i+1] {                 arr.swap(i,i+1);                 sorted = false;             }         }         n -= 1;     }  }  #[cfg(test)] mod tests {     use super::super::is_sorted;     use super::*;      #[test]     fn descending() {         let mut vec1 = vec![6,5,4,3,2,1];         bubble_sort(&mut vec1);         assert!(is_sorted(&vec1))     }      #[test]     fn ascending() {         let mut vec2 = vec![1,2,3,4,5];         bubble_sort(&mut vec2);         assert!(is_sorted(&vec2))     }      #[test]     fn empty() {         let mut vec3:Vec = vec![];         bubble_sort(&mut vec3);         assert!(is_sorted(&vec3))     } }插入排序 pub fn insertion_sort(arr:&mut [T]) where     T: PartialOrd+Copy {     for i in 1..arr.len() {         let cur = arr[i];         let mut j = i - 1;          while arr[j] > cur {             arr[j+1] = arr[j];             if j == 0 {                 break;             }             j -= 1;         }          // exit the loop from that break statement         if j == 0 && arr[0] > cur {             arr[0] = cur;         }else {             // `arr[j]>cur` is not satisfied ,exit from condition judgement             arr[j+1] =cur;         }     } }  #[cfg(test)] mod tests {     use super::super::is_sorted;     use super::*;      #[test]     fn empty() {         let mut arr:[u8;0] = [];         insertion_sort(&mut arr);         assert!(is_sorted(&arr));     }      #[test]     fn one_element() {         let mut arr:[char;1] = ["a"];         insertion_sort(&mut arr);         assert!(is_sorted(&arr));     }      #[test]     fn already_sorted() {         let mut arr:[&str;3] = ["a","b","c"];         insertion_sort(&mut arr);         assert!(is_sorted(&arr));     }      #[test]     fn basic() {         let mut arr:[&str;4] = ["d","a","c","b"];         insertion_sort(&mut arr);         assert!(is_sorted(&arr));     }      #[test]     fn repeated_elements() {         let mut arr: Vec = vec![542,542,542,542];         insertion_sort(&mut arr);         assert!(is_sorted(&arr));     } }归并排序fn merge(arr:&mut [T],mid:usize) {     // Create temporary vectors to support the merge     let left_half = arr[..mid].to_vec();     let right_half = arr[mid..].to_vec();      let mut l:usize = 0;     let mut r:usize = 0;      for v in arr {         if r == right_half.len() || (l < left_half.len() && left_half[l] < right_half[r]) {             *v = left_half[l];             l += 1;         }else {             *v = right_half[r];             r += 1;         }     }  }  pub fn top_down_merge_sort(arr:&mut [T]) {     if arr.len() > 1 {         let mid:usize = arr.len() / 2;         // Sort the left half recursively         top_down_merge_sort(&mut arr[..mid]);         // Sort the right half recursively         top_down_merge_sort(&mut arr[mid..]);         // Combine the two halves         merge(arr,mid)     } }  #[cfg(test)] mod tests {      #[cfg(test)]     mod top_down_merge_sort {         use super::super::*;          #[test]         fn basic() {             let mut res = vec![10,3,8,2,7,6,1,4,5,9];             top_down_merge_sort(&mut res);             assert_eq!(res, vec![1,2,3,4,5,6,7,8,9,10])         }          #[test]         fn basic_string() {             let mut res = vec!["a","bb","d","cc"];             top_down_merge_sort(&mut res);             assert_eq!(res,vec!("a","bb","cc","d"))         }          #[test]         fn empty() {             let mut res = Vec::::new();             top_down_merge_sort(&mut res);             assert_eq!(res, vec![])         }          #[test]         fn one_element() {             let mut res = vec![1];             top_down_merge_sort(&mut res);             assert_eq!(res, vec![1])         }          #[test]         fn pre_sorted() {             let mut res = vec![1,2,3,4,5,6,7];             top_down_merge_sort(&mut res);             assert_eq!(res, vec![1,2,3,4,5,6,7])         }     } }

志愿兵三期士官自主就业的安排工作吗?志愿兵三期士官自主就业的按排工作吗?我愿意为各位战友们进行分析解答,以供您参考三期士官,证明你已服役了十二年,面临着退役。现在的政策是,三期退役的士官符合政府安置工作条件,可以按排全家户口迁出农村,但农村房子还在,宅基地还能使用吗?作为农村人,我对这方面的政策了解比较多,可以帮你解答一下这个问题。根据城镇化建设的需要,全国不少中小城市和小城镇已经陆续取消或放宽落户限制,特别是城区常住人口较少的城市。在落户限制我初中的班长,中考全市前百结果高中不好好学习抽烟喝酒天天混社会,最后高考200多分,对此怎么看呢?看到你班长的经历,我想提醒考上高中的学生,中考成绩只是张入场券,只能代表你可以上高中,3年后可以进去高考考场。但是,高考成绩取决于高中三年的努力,与中考成绩关系真的不大!作为一名老伦敦大学学院相当于中国什么大学?您好,首先可以做一个知识科普,英国最顶尖的五所大学牛津剑桥帝国理工IC伦敦政治经济学院LSE伦敦大学学院UCL统称为G5,因为LSE只有只有人文社科这类专业,没有理工科所以QS综合让无数学子牵挂的百年哈尔滨工业大学,好在哪里?哈尔滨工业大学被美国列入制裁的实体清单,可以说,这所学校有让美国忌惮的地方,那么哈尔滨工业大学的实力有多恐怖呢,美国为何要制裁它呢,我们先来了解一下哈尔滨工业大学。哈尔滨工业大学简高中如果天赋不高,仅凭借努力可以考上985大学吗?本人资深高中教师,从教近三十年了,也是资深毕业班班主任。个人观点,如果天赋不够,仅仅通过努力考上985等超一流大学是小概率事件。为何如此说呢?请听我娓娓道来。我在一流高中从教十几年绵阳师范学院是什么层次的大学,在四川省高等院校中能排到什么位置?选择一所大学,选择一座城市,先来认识一下绵阳这座城。绵阳市,四川省地级市,位于四川盆地西北部,是一座有2200多年建城史的城市,中国著名的科技城,成都平原城市群北部中心城市,成渝经同属于双一流大学的湖南大学和云南大学,哪所高校综合实力更突出?湖南大学的综合实力明显比云南大学强一学校简介湖南大学(HunanUniversity),简称湖大,坐落于长沙市,是教育部直属全国重点大学,教育部工业和信息化部湖南省人民政府国家国防弟弟高考只考了一百多分,该怎么安慰他?弟弟高考只考了一百多分,该怎样安慰他?答,这个不用安慰,如果弟弟认真读书了,只打这么一点分,那不是安慰的问题,而是准备喝彩!注意,不是喝倒彩,而是真诚地喝彩。需要安慰的人是成绩独步第一批70后已经过50岁了,有多少存款才算有钱人,你达标了吗?第一批70后已经过50岁了,有多少存款才算有钱人,你达标了吗?70后,一个不得不说的话题。现在最早的70后已经50多岁了,最晚的70后也已经进入40多岁,介于中年和老年之间,是一个女朋友是应届生,现在同时拿到了国企offer和北京公务员的面试资格,只能选择一个该如何权衡?能同时拿到国企offer和北京公务员的面试资格,选哪个呢,我们要多方面比较一国企也是在北京吗,你们打算在哪个城市奋斗,国企和公务员面试的部门和自己的专业对口程度如何,自己的职业规划
人生是无法参透的圣经人生是一场极具讽刺,又充满着矛盾,还幼稚可笑的修行当然对于人生,凭我的阅历和资历还不足以聊人生,没有足够的认知来品评这深邃的人生话题只是有些过往,感触殊深,写出来,娱乐一下而已拿着一个人熬过所有孤独隔壁老樊在我对孤独的想说的话里唱到我晚上一个人走回家,醉在沙发上。一个人的时候,偶尔会自言自语。我害怕我自己。我在床上放满了洋娃娃。无论你这一夜有多痛苦,明天这个世界依然车水马龙。再回首恍然如梦以前在家乡工作时,几乎每个月都回去,县城虽小,却很少碰到同学,除非主动联系。几个同学有一官半职,有签单权,每年回去至少请我们聚一次。每次问我想见哪些同学,就尽量把他们都叫来。这份情第36篇一个聪明的女人漫天遍野的雪花从清早就稀疏地飘落下来,这是塞外小镇上一个寒冷冬天的清早,树枝上站满了叽叽喳喳地叫个不停在觅食的麻雀,整个天空灰蒙蒙的,除了刚散落在泥土上的湿露露地打着旋儿,再就是西米切尔今晚的比赛是执行力最好的一次,会继续努力保持NBA常规赛,骑士114102击败老鹰,骑士球员米切尔接受采访。今天的比赛我们的跑位非常精准,我们明确的知道我们接下来要做什么,也知道从什么方面去攻击对手让他们的防守瓦解,今晚的比每一次的努力拼搏,都是改变人生的开始(励志人生)穷,不是失败的理由应该是拼搏的理由,奋起的理由就算是失败了,最多还是个穷人,有什么好害怕的呢?可是万一成功了呢?不就是富了嘛!其实没有失败的说法,再怎么不成功也就是个穷。对于未来的科幻加科普,让孩子们获得勇气智慧与创造力有人说没有什么比科幻小说能够更好地去想象世界将要发生的巨大变化了。马传思姚利芬主编的科幻作家写给孩子的未来书,就是一套科学虚幻小说,书中的故事,是目前科技还不能企及的,但也不是凭空外交部愿同美方一道努力推动人文交流和民间往来中国青年报客户端北京11月24日电(中青报中青网记者胡文利)关于中美元首二十国集团(G20)峰会会晤后两国人文交流是否回暖,外交部发言人毛宁今天在例行记者会上表示,鼓励扩大两国各领岁月沧桑,努力奔跑的人终会熠熠生辉艰难的大环境下,许多人选择逃离大城市,更有的人选择躺平啃老,美其名曰大环境所迫,不得以而为之,为自己的懒披上华丽的外衣。这几年的确比较难,时代的一粒沙,落到每个人头上就是一场灾难,情绪文案浅喜似苍狗,深爱如长风2022世界杯千万不要对任何事感到后悔,因为它曾经一度就是你想要的。后悔没用,要么忘记,要么努力。曾经听说过,人的一生当中最好别错过两样东西,一样是回家的末班车,还有一样是一个深爱新的一天,请努力新的一天,当朝阳从天边升起,唤醒了沉睡的大地,街上小贩的吆喝声,伴随着一阵阵的鸟鸣,拉开了这一天的序幕,我们心中都应该充满着期待,保持着对新的一天的热情。因为你微笑地面对生活,生活