C 排序演算法 插入法

2021-04-20 02:19:17 字數 711 閱讀 6634

在閱讀此博文前,請先閱讀我的博文「c#排序演算法——基類設計 「,以了解基類的結構。

在寫**前,我們先來了解一下插入法排序過程:

第1次遍歷,構造乙個只有乙個元素的子集,list[0],顯然,這個子集是有序的(因為只有乙個元素啊)。

第2次遍歷,將list[1]插入到有序子集list[0]中,構成新的有序子集list[0]:list[1]:當list[1] < list[0]時,將list[0]和list[1]互換,否則list[0]和的位置不變。

...第i次遍歷,將list[i]插入到有序子集list[0]:list[i - 1]中,構成新的有序子集list[0]:list[i]:先查詢list[i]應試插入的位置,設為j,將list[j]到list[i - 1]中的元素往後移乙個位置,將list[i]插入到位置j.

...第n次遍歷,將list[n]插入到有序子集list[0]:list[n-1]中,插入方法同上,這裡就不再哆嗦了。

好了,根據上面的演算法,我們開始編碼了:

using  system;

using  system.collections.generic;

using  system.text;

namespace  cyb.datastruct.sorting

list[index + 1] = temp;      //將待插入的元素插入到合適的位置,構造新的有序子集 }

} } }

插入法排序演算法

它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。package com.hikversion.controller.sort public class i...

插入法排序

static void insertsort int nums 挪位置 for int k i 1 k index k 插入 nums index insert static void main string args console.writeline 排序前的陣列 foreach var n i...

插入法排序

插入法排序較為複雜,其基本工作原理是抽出乙個資料,在前面的資料中尋找相應的位置插入,直到完成排序。以數字9 6 15 4 2為例,採用插入法實現數字按從小到大進行排序,插入法排序過程如圖8.23所示。圖8.23 插入法排序過程示意圖 從圖8.23可以發現,在第一次排序過程中將第乙個數取出來,並放置在...