程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++插入排序詳解

c++插入排序詳解

編輯:關於C++

c++插入排序詳解。本站提示廣大學習愛好者:(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]<<" ";
   } 
 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved