美文网首页
算法第4版-算法2.1 选择排序一些奇怪的问题

算法第4版-算法2.1 选择排序一些奇怪的问题

作者: Sakura_CCC | 来源:发表于2018-10-30 16:35 被阅读0次

    选择排序本来是一个比较简单的排序 今天依照书的方法缺出现奇怪的问题,因为后续的排序算法都是基本这套模板来写,所以必须解决

    排序胡乱了,开始我以为是自己打漏或者打错了代码但是看代码逻辑没有问题,对照书本也没有打漏.

    后来检查的时候发现问题所在了

    在元素比较的时候我手多添加了一个注释 @SuppressWarnings("unchecked"),导致排序错误百度了 @SuppressWarnings("unchecked")的作用如下:

    该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。

    @SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,

    您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止

    您对警告无动于衷 — 您看到的每一个警告都将值得注意。

    @SuppressWarnings 解释的传送门:https://blog.csdn.net/hunhun1122/article/details/72356228


    附上代码:

    <pre>

    //选择排序

    public class Example_Selection {

    //算法

    public static void sort(Comparable[] a) {

    int N=a.length;

    for (int i=0;i<N;i++) {

    int min =i;

    for(int j =i+1;j<N;j++) {

    if(less(a[j], a[min]))

    min =j;

    }

    exch(a,i,min);

    }

    }

    //元素比较

    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<a.length;i++)

    StdOut.print(a[i]+" ");

    StdOut.println();

    }

    //测试数组元素是否有序

    public static boolean isSorted(Comparable[] a) {

    for (int i=1;i<a.length;i++) {

    if(less(a[i],a[i-1]))

    return false;}

    return true;

    }

    public static void main(String[] args) {

    //从标准输入读取字符串,将它们排序并输出

    Scanner sca=new Scanner(System.in);

    String s=sca.next();

    String[] a= s.split(",");

    Integer[] num = new Integer[a.length];

    for (int i = 0; i < a.length; i++) {

                num[i] = Integer.parseInt(a[i]);

            }

    sort(num);

    assert isSorted(num);

    show(num);

    }

    }

    </pre>

    相关文章

      网友评论

          本文标题:算法第4版-算法2.1 选择排序一些奇怪的问题

          本文链接:https://www.haomeiwen.com/subject/kewgtqtx.html