c語言排序算法之直接插入排序,包括正序和逆序

編程語言 C語言 數據結構 科技 我的IT之旅 2017-06-24

排序算法是C語言中最基本的,也是經常用到的,在面試的時候更是經常提到的,今天聊聊直接插入排序。

1.什麼是插入排序法?

有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入後此數據序列仍然有序,此時就要用到插入排序了。插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據。

2.使用場景以及複雜度。

直接插入算法適用於少量數據的排序,時間複雜度為O(n^2),穩定的排序方法。

3.基本思想

插入算法把要排序的數組分成兩部分:第一部分包含了這個數組的所有元素,但將最後一個元素除外(讓數組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。

4.代碼實現:

①數據結構部分:

c語言排序算法之直接插入排序,包括正序和逆序

②正序算法:

c語言排序算法之直接插入排序,包括正序和逆序

③逆序算法:

c語言排序算法之直接插入排序,包括正序和逆序

④main函數中,初始化數據後對其算法的調用:

c語言排序算法之直接插入排序,包括正序和逆序

⑤實例:

我們初始化數據如下:

c語言排序算法之直接插入排序,包括正序和逆序

算法結果如下:

c語言排序算法之直接插入排序,包括正序和逆序

每天進步一點點,每天消化一點點,如果你有更好的想法,歡迎一起交流,如果這篇文章對你有所幫助,點個贊吧。

相關推薦

推薦中...