首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写排序算法对CustomInteger对象进行排序

编写排序算法对CustomInteger对象进行排序
EN

Stack Overflow用户
提问于 2015-12-16 08:28:24
回答 1查看 116关注 0票数 0

我正在尝试制定一个排序算法,按照升序顺序对对象排序。排序方法应该使用我编写的goodSwap方法。在某种程度上,我找到了一些有趣的文章和代码示例来对整数进行排序,但对我的问题不起作用。下面是我为我的问题做了研究的链接:

  1. http://www.programmingsimplified.com/java/source-code/java-program-to-bubble-sort
  2. https://docs.oracle.com/javase/tutorial/collections/algorithms/#sorting
  3. https://www.youtube.com/watch?v=JUOyKSZScW0
  4. http://www.java2novice.com/java-sorting-algorithms/quick-sort/
  5. http://www.java2novice.com/java-sorting-algorithms/

这是我的密码:

CustomInteger.java

代码语言:javascript
复制
 /**
  * @author AbduMuhaimin
  * @since 16/12/2015
  * Java Good Swap algorithm
  **/
//class CustomInteger

class CustomInteger {
    private int value;

    public CustomInteger(int i) {
        this.value = i;
    }
    public void setValue(int value) {
        this.value = value;
    }
    public int getValue() {
        return this.value;
    }

    public static void goodSwap(CustomInteger a, CustomInteger b) {
        CustomInteger z = new CustomInteger(a.getValue());
        a.setValue(b.getValue());
        b.setValue(z.getValue());
    }
    //main method
    public static void main(String[] args) {
        //before swapping
        CustomInteger a = new CustomInteger(10);
        CustomInteger b = new CustomInteger(5);
        System.out.println("Before swapping\n");
        System.out.println("Value of a: " + a.getValue() + "\n");
        System.out.println("Value of b: " + b.getValue() + "\n");

        //after swapping
        goodSwap(a,b);
        System.out.println("After swapping\n");
        System.out.println("Value of a: " + a.getValue() + "\n");
        System.out.println("Value of b: " + b.getValue() + "\n");
    }

}

如何制定排序算法,我必须使用哪种类型的排序?是泡泡,合并还是快速排序?我仍然是在Java中分类的新手:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-16 08:37:08

选择排序:sort

代码语言:javascript
复制
    CustomInteger[] vec = new CustomInteger[]{new CustomInteger(5), new CustomInteger(1), new CustomInteger(2), new CustomInteger(4), new CustomInteger(5), new CustomInteger(2)};

    for (int i = 0; i < vec.length - 1; i++) {
        int min = i;
        for (int j = i + 1; j < vec.length; j++) {
            if (vec[j].getValue() < vec[min].getValue()) {
                min = j;
            }
        }
        if (min != i) {
            goodSwap(vec[i], vec[min]);
        }
    }

    for (int i = 0; i < vec.length; i++) {
        System.out.print(vec[i].getValue() + " ");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34307117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档