關鍵區別-**排序與選擇排序
**排序和選擇排序是兩種排序算法,用於對一組數據進行排序。有時有必要按特定順序排列數據。排序算法是對一組數據進行排序的機制。在排序中,數據是按照數字或字典順序排列的。如果數據被正確地排序,那麼很容易更快地搜索數據。如果電話簿中的電話號碼不是按順序排列的,那麼就很難找到具體的電話號碼。同樣地,如果字典裡的單詞不是按字母順序排列的,那麼很難找到單詞。因此,分類在日常生活中是有用的。在計算機科學中,有排序算法對一組數據進行排序。這兩種算法是**排序和選擇排序。**排序是通過逐個移動元素對數組進行排序的排序算法。選擇排序是在數組中找到最小的元素並與第一個位置交換元素,然後找到第二個最小元素並與第二個位置的元素交換,然後繼續這個過程直到整個數組被排序。**排序和選擇排序的關鍵區別在於**排序一次比較兩個元素,而選擇排序則從整個數組中選擇最小的元素並對其排序。
目錄
1. 概述和主要區別
2. 什麼是**排序
3. 什麼是選擇排序
4. **排序和選擇排序的相似性
5. 並排比較-**排序與表格形式的選擇排序
6. 摘要
什麼是**排序(insertion sort)?
**排序是一種基於就地比較的排序算法。該方法是一步一步搜索數組。未排序的項將被移動並**數組的已排序子列表中。**排序算法可以用下面的例子來解釋。
例如,將初始數組設為77,33,44,11,88。在這種排序算法中,第一步是選擇當前元素。
當前元素為77。當前元素與左側的所有元素進行比較。77是第一個元素,左側沒有元素。當前位置的索引為0。
然後,當前位置的索引將增加1。現在索引是1,當前元素是33。與左側的元素比較時,它小於77。然後,這兩個值都被交換。現在33在索引0中,77在索引X1中。
現在數組是33,77,44,11,88。
同樣,索引是遞增的。索引為2,當前元素為44。它與左側的元素進行比較。44小於77。所以這兩個值是交換的。現在數組是33,44,77,11,88。有必要比較左邊的所有元素。所以,44和33相比。33比44小。所以這些元素不需要交換。
現在數組是33,44,77,11,88。
同樣,索引是遞增的。索引為3,當前元素為11。它與左邊的所有元素進行比較。11小於77,所以這兩個被交換了。現在數組是33,44,11,77,88。比較11和44時,11小於44。所以這兩個是交換的。現在數組是33,11,44,77,88。同樣,11與33相比。11小於33,所以這兩個值被交換。
現在數組是11,33,44,77,88。
遞增索引將使索引變為4。值是88。它高於77。所以,沒有必要交換。最後,排序後的數組是11,33,44,77,88。
**排序的實現如上所示。初始數組為77,33,44,11,88。排序後,輸出11,33,44,77,88。
什麼是選擇排序(selection sort)?
選擇排序是一種基於就地比較的排序算法。數組被分成若干部分。排序的部分在左端。未排序的部分在右端。首先應該找到最小的值。然後與左元素交換。現在元素在排序數組中。此過程繼續將未排序的數組邊界從一個元素向右移動。選擇排序算法可以用下面的例子來解釋。
例如,將初始數組設置為77,33,44,11,88,22。在這個排序算法中,找到數組中最小的。最小的元素是11。它與數組的0索引中的元素交換。
現在數組是11,33,44,77,88,22。
最小的元素在索引0中,因此11現在被排序。其餘元素中最小的22個。它與第一個索引元素交換。
現在數組是11,22,44,77,88,33。
元素11和22已經排序。其餘的最小值是33。它與第二個索引元素交換。
現在數組是11,22,33,77,88,44。
元素11、22和33已經排序。其餘的最小值是44。它與第三個索引元素交換。
現在數組是11,22,33,44,88,66。
元素11、22、33、44已經排序。其餘的元素是88和66。元素66與第4個索引元素交換。
現在數組是11,22,33,44,66,88。
它是使用選擇排序算法排序的數組。
**排序的實現如上所示。初始數組為77,33,44,11,88。排序後,輸出11,33,44,77,88。
什麼是**排序與選擇排序的相似性(the similarity between insertion sort and selection sort)?
- **排序和選擇排序都是排序算法。
**排序(insertion sort)和選擇排序(selection sort)的區別
**排序與選擇排序 | |
**排序是通過逐個移動元素對數組進行排序的排序算法。 | 選擇排序是在數組中找到最小的元素並與第一個位置交換元素,然後找到第二個最小元素並與第二個位置的元素交換,然後繼續這個過程直到整個數組被排序。 |
過程 | |
**排序是通過比較兩個元素對子列表進行排序,直到整個數組被排序為止。 | 選擇排序選擇最小元素並將其與第一個位置交換,再次為其餘位置選擇最小值並將其交換到第二個位置並繼續此過程直到結束。 |
穩定性 | |
**排序是一種穩定的排序算法。 | 選擇排序不是一個穩定的排序算法。 |
總結 - **排序(insertion sort) vs. 選擇排序(selection sort)
有時需要對數據進行排序。在計算機科學中,有分類數據的算法。本文討論了**排序和選擇排序兩種排序算法。**排序是通過逐個移動元素對數組進行排序的排序算法。選擇排序是在數組中找到最小的元素並與第一個位置交換元素,然後找到第二個最小元素並與第二個位置的元素交換,然後繼續這個過程直到整個數組被排序。**排序和選擇排序的區別在於**排序一次比較兩個元素,而選擇排序則從整個數組中選擇最小的元素並對其排序。
下載**排序與選擇排序的pdf文件
你可以下載這篇文章的PDF版本,並根據引文說明離線使用。請在這裡下載PDF版本:**排序和選擇排序的區別