最簡(jiǎn)單的排序算法之一便是插入排序(insertion sort). 其復(fù)雜度為O(N^2).
思路也非常簡(jiǎn)單就是2個(gè) for 循環(huán)嵌套.第一個(gè) for 循環(huán)遍歷整個(gè)數(shù)組,其里面的 for 循環(huán)則進(jìn)行判斷將當(dāng)前的數(shù)字跟其前面的數(shù)字進(jìn)行對(duì)比,放到第一個(gè)小于它的后面的位置.以此為循環(huán).當(dāng)外面的 for 循環(huán)遍歷完成,則該數(shù)組已成為一個(gè)升序排序的數(shù)組了,此排序方法效率很低.
double* InsertionSort(double*a,intn){
intj,p;
doubletmp;
for(p =1;p < n;p++){
tmp = a[p];
for(j = p;j >=0&& a[j-1] > tmp;j--){
a[j] = a[j-1];
}
a[j] = tmp;
}
returna;
}