後期考慮使用模板
如上圖所示,每次都將乙個陣列右側無序部分的第乙個,插入到左邊有序的部分。插入的過程是在有序部分從右向左,不斷交換位置。
#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 ...