Java 프로그램 설계 2분 찾기 및list 정렬

1831 단어 java 기초 지식

1.2점 찾기


 
 //   r>=l 
public static int BinarySearch(int[] data,int aim)
{
    int l=0,r=data.length-1;
    while(r>=l) // !!!
    {
        int mid=(l+r)/2;
        if(aim==data[mid])
            return mid;
        else if(aim>data[mid])
            l=mid+1;
        else
            r=mid-1;
        
    }
    return -1;
}

2. 두 가지list의 실현 방식


  • // 방법1: 클래스에서Comparable 인터페이스를 데이터로 정렬하기



  •    
     class Node implements Comparable{
        int data;
        int otherdata;
        public Node(int data,int otherdata)
        {
            this.data=data;
            this.otherdata=otherdata;
        }
        @Override
        public int compareTo(Node arg0) {
            // TODO Auto-generated method stub
            if(this.data list=new ArrayList();
            list.add(new Node(25,1));
            list.add(new Node(52,2));
            list.add(new Node(1,3));
            list.add(new Node(50,5));
            // : data   
            //Collections.sort(list);

  • // 메서드2: Collections를 다시 작성합니다.sort 방법으로 Comparator 클래스 사용


  • //  Node Comparable 
    
     ArrayList list=new ArrayList();
            list.add(new Node(25,1));
            list.add(new Node(52,2));
            list.add(new Node(1,3));
            list.add(new Node(50,5));
    
    Collections.sort(list, new Comparator(){
                @Override
                public int compare(Node arg0, Node arg1) {
                    // TODO Auto-generated method stub
                    if(arg1.data>arg0.data)
                        return 1;
                    else if(arg1.data==arg0.data)
                        return 0;
                    else
                        return -1;
                }    
            });

    좋은 웹페이지 즐겨찾기