【演算法】插入排序
static void Main(string[] args)
{
int[] n = new int[] { 7, 8, 1, 5, 9, 4, 7, 9, 4, 1 };
Sort(n);
}
static void Sort(int[] n)
{
for (int i = 1; i < n.Length; i++)
{
if (n[i] < n[i - 1])
{
int temp = n[i];
int j = i;
while (j > 0 && n[j - 1] > temp)
{
n[j] = n[j - 1];
j--;
}
n[j] = temp;
}
}
}
有一個已經有序的資料序列,要求在這個已經排好的資料序列中插入一個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個資料插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為O(n^2)。是穩定的排序方法。插入演算法把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後一個元素除外(讓陣列多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。
插入排序的基本思想是:每步將一個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的檔案中適當位置上,直到全部插入完為止。
相關文章
- 常用演算法-插入排序演算法排序
- 排序演算法——插入排序排序演算法
- python演算法 - 插入排序演算法Python演算法排序
- 實時插入排序演算法排序演算法
- 排序演算法__折半插入排序排序演算法
- 排序演算法:插入排序演算法 PHP 版排序演算法PHP
- PHP 排序演算法之插入排序PHP排序演算法
- 排序演算法之折半插入排序排序演算法
- PHP 演算法02之插入排序PHP演算法排序
- 直接插入排序演算法排序演算法
- 從演算法開始[插入排序]演算法排序
- 小白懂演算法之插入排序演算法排序
- 從演算法開始(插入排序)演算法排序
- 死磕演算法之插入排序演算法排序
- 排序演算法__直接插入排序排序演算法
- Python進階-演算法-插入排序Python演算法排序
- 排序演算法:直接插入排序排序演算法
- 排序演算法入門之「插入排序」排序演算法
- 排序演算法——直接插入排序排序演算法
- 經典演算法之折半插入排序演算法排序
- 排序演算法-直接插入排序排序演算法
- C#演算法----(二)插入排序 (轉)C#演算法排序
- 畫江湖之演算法篇【排序演算法】插入排序演算法排序
- 畫江湖之演算法篇 [排序演算法] 插入排序演算法排序
- 排序演算法之——二分插入排序演算法排序演算法
- Python演算法之---冒泡,選擇,插入排序演算法Python演算法排序
- 排序演算法(3)插入排序(Insertion Sort)排序演算法
- Java常見排序演算法之插入排序Java排序演算法
- 排序演算法之「插入排序(Insertion Sort)」排序演算法
- 三分鐘看懂插入排序演算法排序演算法
- 排序演算法:二分插入排序排序演算法
- 排序演算法 - 快速插入排序和希爾排序排序演算法
- 排序演算法——二分插入排序排序演算法
- 手寫演算法並記住它:插入排序演算法排序
- 【排序演算法動畫解】直接插入排序排序演算法動畫
- 2.插入排序演算法(Insertion_Sort)排序演算法
- 三言兩語講排序演算法——插入排序排序演算法
- js的插入排序演算法詳細介紹JS排序演算法