算法2.0排序算法类的模板

算法2.0排序算法类的模板

《算法》笔记导航

《算法》中文第四版P153
2020.7.14
@Stream_

public class Example

排序时所需使用的基础方法
将模板中的这些方法放入每个排序的类

一、方法

1.排序方法
  • public static void sort(Comparable[] a)
    需要将写好的排序算法放在该方法里
    Comparable支持Integer、Double、String等,需要将使用的数据转化为封装类
2.排序使用到的方法
  • private static boolean less(Comparable v,Comparable w)
    比较封装类v和w的大小,如果v小于w,则返回true
  • private static void exch(Comparable[] a,int i,int j)
    交换数组a中的a[i]和a[j]的位置
3.用于输出和检测的方法
  • private static void show(Comparable[] a)
    输出数组中的所有元素
  • public static boolean isSorted(Comparable[] a)
    检测数组是否有序(由小至大,增序)

二、基本方法的实现

public class Example {
    public static void sort (Comparable[] a){
        //将不同的算法放到此位置
    }

    private static boolean less(Comparable v,Comparable w){
        return v.compareTo(w)<0;
    }
    private static void exch(Comparable[] a,int i,int j){
        Comparable t=a[i];
        a[i]=a[j];
        a[j]=t;
    }

    private static void show(Comparable[] a){
        for(int i=0;i

三、将int数组转化为Integer数组的方法

1.需要导入的包
import java.util.Arrays;
import java.util.stream.IntStream;
import java.util.stream.Stream;
2.程序实现
/*int数组名为nums,得到的封装类Integer数组名为integers*/

    //先将int数组转换为数值流
    IntStream stream = Arrays.stream(nums);

    //流中的元素全部装箱,转换为流 ---->int转为Integer
    Stream integerStream = stream.boxed();
    
    //将流转换为数组
    Integer[] integers = integerStream.toArray(Integer[]::new);

渣渣菜鸡,难免错误,请友善讨论
非商用转载需注明作者及文章链接来源,私信告知后无需我回复即可直接转载

你可能感兴趣的:(算法2.0排序算法类的模板)