суббота, 3 января 2015 г.

Пузырьковая сортировка

 

Data Structures and Algorithms in Java, Robert Lafore, стр 79

Медленная, но простая сортировка.

Алгоритм:

1. Сравнить два числа
2. Если первой число больше поменять со вторым
3. Сдвинуться на одну позицию дальше

import java.lang.reflect.Array;
 
class ArrayBub
{
    private long[] a;
    private int nElements;
    
    public ArrayBub (int max)
    {
        a = new long [max];
        nElements = 0; 
        
    }
 
    public void insert (long value)
    {
    a[nElements]=value;
    nElements++;    
    }
    
    public void display()
    {
        for (int i = 0; i < nElements; i++) {
            System.out.println(a[i]+" ");
            System.out.println("");
        }
    }
    
    
    public void bubbleSort()
    {
        int out,in;
        
        for (out = nElements-1; out > 1; out--) {
           for (in = 0; in < out; in++) {
               if(a[in]>a[in+1])
                   swap(in,in+1);
              }    
        }
    }
    
    
    private void swap (int one, int two)
    {
        long temp = a[one];
        
        a[one] = a[two];
        a[two] =temp;
    
    }
    
    
}
 
 
public class Bubble {
    
 
    public static void main(String[] args){
        
        int maxSize = 100;
        
        ArrayBub arr;
        arr = new ArrayBub(maxSize);
        
        arr.insert(52);
        arr.insert(56);
        arr.insert(23);
        arr.insert(26);
        arr.insert(59);
        arr.insert(56);
        
        arr.display();
        
        arr.bubbleSort();
        
        System.out.println("-----------------");
        
        
        arr.display();
        
    }
 
}

Комментариев нет:

Отправить комментарий