排序 選擇排序 插入排序

2021-09-12 18:59:12 字數 672 閱讀 7883

​ 選擇排序應該說是最簡單的排序演算法,它的核心思想是不斷地選擇剩餘元素中最小者

​ 選擇排序的過程是:首先,找到陣列中最小的元素,然後將它與陣列中的第乙個元素交換位置(如果第乙個元素是最小的元素,則和自己交換);接著,從剩下的元素中找到最小的元素,將它與陣列中的第二個元素交換位置。如此往復,直到將整個陣列排序。

class selection 

a[j] = k; // 將a[i]插進來}}

};

命題:插入排序(1)所需的交換操作和陣列中倒置的數量相同;(2)需要的比較次數大於等於倒置的數量,小於等於倒置的數量加上陣列的大小再減一。

證明:(1)每次交換都改變了兩個順序顛倒的元素的位置,當倒置數量為0時,陣列就有序了;(2)每次交換都對應著一次比較,且 1 到 n-1 之間的每個 i 都可能需要一次額外的比較(例如,其實整個陣列在一開始就是有序的,那麼進行的 n-1 次比較都是額外的)。

對於長度為n的陣列,插入排序:

(1)時間複雜度介於 n

nn 和 n

2n^2

n2之間;

(2)空間複雜度為 1;

(3)是穩定排序;

(4)是原地排序。

插入排序 選擇排序

插入排序 有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法 插入排序法 插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度 為o...

排序,氣泡排序,選擇排序,插入排序

public class sorts if flag 如果一輪排序中沒有發生交換證明已經排好 bubblesort的排序方法是保證每次確定把minimum value推到最前面 合適的位置 時間複雜度 o n2 return input public static int selectsort in...

排序 氣泡排序 選擇排序 插入排序

package com.cc.mystudy.datastructor public class sortdemo for int i 0 i array.length i return array 選擇排序 將未排列陣列的起始位置設定為最小 大 值,將下標記錄下來 遍歷陣列,將其餘元素與第乙個元素...