c++插入排序詳解。本站提示廣大學習愛好者:(c++插入排序詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是c++插入排序詳解正文
作者:傻蝸牛
插入排序的基本思想是每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成為止。下面我們來詳細探討下C++實現插入排序說一說插入排序
插入排序的基本操作就是將一個數據插入到已經排序好序的數據中,從而得到一個新的,個數加一的有序數據,算法適用與少量的數據的排序。時間復雜度O(n^2),是穩定的排序算法。
基本思想:每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件的適當位置上去,直到全部插入完為止。
原理示意圖:
函數段的c++代碼實現:
全部代碼如下:
#include <iostream> using namespace std; void insert_sort(int* a,int b)//實現插入排序,引入兩個參數,a為數組首地址,b為數組元素個數 { for(int i=1;i<b;i++) { int j=i; int t=*(a+j);//標記待排序的元素 //將大於待排序元素的數整體後移,然後將t插入小於它的數的後面 while(t<*(a+j-1)&&j!=0) { *(a+j)=*(a+j-1); j--; } *(a+j)=t; } } int main() { int a[5]; for(int i=0;i<5;i++) { cin>>a[i]; } insert_sort(a,5); for(int i=0;i<5;i++) { cout<<a[i]<<" "; } }