插入排序(insertion sort)和選擇排序(selection sort)的區別

插入排序和選擇排序是兩種排序演算法,用於對一組資料進行排序。有時有必要按特定順序排列資料。排序演算法是對一組資料進行排序的機制。在排序中,資料是按照數字或字典順序排列的。如果資料被正確地排序,那麼很容易更快地搜尋資料。如果電話簿中的電話號碼不是按順序排列的,那麼就很難找到具體的電話號碼。同樣地,如果字典裡的單詞不是按字母順序排列的,那麼很難找到單詞。因此,分類在日常生活中是有用的。在電腦科學中,有排...

關鍵區別-**排序與選擇排序

**排序和選擇排序是兩種排序算法,用於對一組數據進行排序。有時有必要按特定順序排列數據。排序算法是對一組數據進行排序的機制。在排序中,數據是按照數字或字典順序排列的。如果數據被正確地排序,那麼很容易更快地搜索數據。如果電話簿中的電話號碼不是按順序排列的,那麼就很難找到具體的電話號碼。同樣地,如果字典裡的單詞不是按字母順序排列的,那麼很難找到單詞。因此,分類在日常生活中是有用的。在計算機科學中,有排序算法對一組數據進行排序。這兩種算法是**排序和選擇排序。**排序是通過逐個移動元素對數組進行排序的排序算法。選擇排序是在數組中找到最小的元素並與第一個位置交換元素,然後找到第二個最小元素並與第二個位置的元素交換,然後繼續這個過程直到整個數組被排序。**排序和選擇排序的關鍵區別在於**排序一次比較兩個元素,而選擇排序則從整個數組中選擇最小的元素並對其排序。

目錄

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。

**排序(insertion sort)和選擇排序(selection sort)的區別

圖01:**排序示例

**排序的實現如上所示。初始數組為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。

它是使用選擇排序算法排序的數組。

**排序(insertion sort)和選擇排序(selection sort)的區別

圖02:選擇排序示例

**排序的實現如上所示。初始數組為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版本:**排序和選擇排序的區別

引用
  • 發表於 2020-10-19 12:45
  • 閱讀 ( 45 )
  • 分類:科技

你可能感興趣的文章

銀行程式碼(swift code)和分類程式碼(sort code)的區別

...的銀行的SWIFT程式碼以及相關的賬戶詳細資訊。 什麼是排序程式碼(sort code)? 分類程式碼是英國和愛爾蘭版本的路由號碼,用於在各自國家內的金融機構之間透過各自的清算所進行資金轉移。它是一個六位數的數字,通常分為...

  • 發佈於 2020-10-07 08:57
  • 閲讀 ( 107 )

如何刪除xbox one上的遊戲

...n A time.按上次用於檢視您有一段時間沒有玩過的遊戲進行排序。或者,選擇“按大小排序”,首先檢視最大的遊戲。 突出顯示一個遊戲,然後按控制器上的選單按鈕。 選擇“解除安裝”,然後選擇...

  • 發佈於 2021-03-12 08:19
  • 閲讀 ( 47 )

如何按評論數對亞馬遜搜尋結果排序

... Amazon Sort for Chrome幫助您按評論數對搜尋結果進行排序。簡單但有效! ...

  • 發佈於 2021-03-16 07:54
  • 閲讀 ( 37 )

如何在excel中生成可排序標題

一旦你進入一個龐大的排序選項列表,microsoftexcel就會成為一個強大的工具。這裡我們將介紹它最直接的排序選項,這是一個簡單的選項,使我們能夠對特定列中的資料重新排序。 在電子表格中,突出顯示包含要排序的標題的...

  • 發佈於 2021-03-31 17:32
  • 閲讀 ( 29 )

如何在谷歌地圖中更改汽車圖示

在分析googlesheets中的複雜資料集時,可以利用其內建的排序功能來組織資料。您可以按單個列排序,或者,對於更復雜的資料,可以按多列排序。 為此,您需要開啟googlesheets電子表格並選擇要排序的資料集。您可以手動執行此...

  • 發佈於 2021-04-01 11:36
  • 閲讀 ( 51 )

如何在linux上使用uniq命令

...繁的合作者之一是sort,因為uniq必須對要處理的輸入進行排序。 讓我們點燃它! 相關:如何在Linux上使用管道 執行uniq沒有選項 我們有一個文字檔案,裡面有羅伯特·約翰遜的歌《我相信我會打掃我的掃帚》的歌詞。讓我們看看u...

  • 發佈於 2021-04-02 16:25
  • 閲讀 ( 46 )

如何在linux上使用管道

...awk '{print $5 " " $3 " " $9}' | sort -n 輸出現在按檔案大小順序排序,我們自定義選擇了三列。 新增其他命令 最後我們將新增tail命令。我們將告訴它只列出最後五行輸出。 ls -l | grep "page" | awk '{print $5 " " $3 " " $9}' | sort -n | tail -5 這...

  • 發佈於 2021-04-03 04:49
  • 閲讀 ( 52 )

命令列:為什麼人們還在為它們煩惱?

...援! 例如,其他命令使用sort命令按字母順序對文字進行排序。無需將排序功能構建到其他每個Linux命令中。一般來說,GUI應用程式不允許這種型別的協作互通。 看下面的例子。這將使用ls命令列出當前目錄中的檔案。結果透過...

  • 發佈於 2021-04-03 05:30
  • 閲讀 ( 45 )

如何在linux上使用rev命令

...元。 很多管道 下面的命令返回當前目錄中每個副檔名的排序列表。它使用五個不同的Linux命令。 ls | rev | cut -d'.' -f1 | rev | sort | uniq 過程很簡單: ls列出當前目錄中的檔案。這些被輸送到rev。 rev反轉檔名並將它們匯入cut。 cut...

  • 發佈於 2021-04-03 07:47
  • 閲讀 ( 49 )
xjta1731
xjta1731

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦