插入排序 最簡單的 和模板方法的C 實現

2021-10-09 05:06:55 字數 1429 閱讀 8708

後期考慮使用模板

如上圖所示,每次都將乙個陣列右側無序部分的第乙個,插入到左邊有序的部分。插入的過程是在有序部分從右向左,不斷交換位置。

#include

using

namespace std;

int*

sort_num

(int arr,

int n)

;void

insertion_sort()

;int len =6;

int* p;

p =sort_num

(list, len)

;for

(int i =

0; i < len; i++

) cout << endl;

}int

*sort_num

(int arr,

int n)

else

num++;}

} cout <<

"idx: "

<< idx << endl;

cout <<

"排序執行了多少次:"

<< num << endl;

return arr;

}

模板方法實現

#include

#include

"../head_file/template_head.h"

#include

using

namespace std;

void

insertion_sort_with_template()

;insertionsort

(list.

begin()

, list.

end())

;for

(auto x : list)

cout << endl;

}template

<

typename iterator>

void

insertionsort

(const iterator& begin,

const iterator& end));

}template

<

typename iterator,

typename comparator>

void

insertionsort

(const iterator& begin,

const iterator& end, comparator lessthan)

*j = std::

move

(tmp);}

}

寫好最簡單的插入排序

直接插入排序,也是很常見的演算法,每本資料結構的書上應該都有這個演算法,如果沒有,你就扔了這本書吧,換一本吧 直接插入排序,為什麼取這個名字?直接插入排序取這個名字,也是很容易理解的,每次都是取出乙個元素,插入前面已經排好序的元素中,重複上述的步驟,直至整個序列變成有序序列。直接插入排序的演算法思路...

簡單插入排序和shell插入排序 C語言

偶得空,遂念經典演算法,務必斬其馬下,也解偶之惑也!簡單插入排序 公升序 void insert int str,int len while j 0 tmpstr j 1 tmp shell排序 公升序 void shell insert int str,int len void shell pas...

插入排序(簡單插入排序和折半排序)的思考和分析

include include iomanip using namespace std 直接插入排序 演算法思想 1 預設第乙個元素已經有序,接著把其後的元素都向前進行對比。2 如果遇到比它還大的則將其前面的元素往後移。演算法實現分為兩個部分 查詢插入位置 移動元素 void insertsort ...