簡體   English   中英

了解冒泡/插入排序

[英]Understanding 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;
}

這是InsertionSort

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;
}

對我來說,兩者看起來都一樣。 我正在比較每個元素,當我找到它的那一刻,我將其交換..但是看起來這兩個實現或多或少都是相同的。 我寫錯了嗎?

是的,我認為您對插入代碼進行了排序錯誤。

檢查插入排序的實現

冒泡排序 :冒泡排序在迭代中,我們將元素與所有其他元素進行比較,如果condition(<或>)為true,則交換該元素

插入排序 :在插入排序的迭代中,我們將焦點所在的元素與其他元素進行比較,並將其放置在數組排序部分中的正確位置。

提示 :查看兩種算法並查看何時進行交換將有助於您更好地理解差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM