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]<<" ";
}
}