2013-09-24 3 views
0

Хорошо, я не в курсе от этих школьных теорий, но я пытаюсь освежиться. Я прочитал алгоритм и внедрил его. Вот кодПонимание Bubble/Insertion sort

public int[] bubbleSort(int[] array) 
{ 
    int swap_bucket; 
    for (int i = 0; i < array.length; i++) 
    { 
     for (int j = i + 1; j < array.length; j++) 
     { 
      if (array[i] > array[j]) 
      { 
       swap_bucket = array[i]; 
       array[i] = array[j]; 
       array[j] = swap_bucket; 
      } 
     } 
    } 

    return array; 
} 

А вот сортировка вставками

public int[] InsertionSort(int array[]) 
{ 
    int swap_bucket; 
    for (int i = 0; i < array.length; i++) 
    { 
     for (int k = i; ((k > 0) && (array[k] < array[k-1])); k--) 
     { 
      swap_bucket = array[k]; 
      array[k] = array[k-1]; 
      array[k-1] = swap_bucket; 
     } 
    } 

    return array; 
} 

Для меня, как выглядит одинаково. Я сравниваю каждый элемент и тот момент, когда я его нахожу, я меняю его .. но похоже, что обе реализации более или менее одинаковы. Я неправильно сформулировал это?

+0

Я думаю, что ваши реализации верны. По моему мнению, сортировка сорта и сортировка пузырьков аналогичны. – johnchen902

+0

Да, По-моему, вы кодировали Insertion sort wrong .. Проверьте реализацию на [Insertion Sort] (http://mathbits.com/MathBits/Java/arrays/InsertionSort.htm) –

+1

Подсказка: как ваш сортировка вставки включает вставку ? –

ответ

4

Да, по-моему, вы закодировали Insertion sort wrong.

Проверить выполнение на Insertion Sort

Bubble Сортировать: В пузырьковой сортировке В итерации мы сравниваем элемент со всеми другими элементами и, если условие (< или>) истинно, то поменять местами элемент

тогда

Вставка Сортировать: в итерации вставки сортировки сравнить элемент в фокусе с другими элементами и поместить его в правильное место в отсортированном р искусство массива.

Подсказка: Изучение алгоритмов и наблюдение за выполнением свопа поможет вам лучше понять разницу.