資料結構與演算法 插入排序

2021-08-18 14:12:50 字數 923 閱讀 8111

一、排序的相關概念

1、排序:將任意序列的資料元素,重新排列成按關鍵字有序(遞增有序或遞減有序)的序列過程。

2、穩定性:若在排序過程中,序列的兩個關鍵字值相同的記錄,在排序結束後,相對位置不發生改變,則稱所用的排序方法為穩定的。

3、排序方法的兩個效能指標:時間複雜度和空間複雜度。

二、插入排序

1、基本思想:對任意的序列,先將第乙個記錄看成有序序列,再將第2個元素插入到有序序列,並對其排序。重複以上步驟,直到所有記錄排序完成。

2、舉例說明

原始序列:28  16   32    12    60    2      5     72

第一趟:(28),16,  32, 12, 60, 2, 5, 72             

第二趟:(16, 28),32, 12,  60,  2, 5, 72

第三趟:(16, 28,32),12, 60, 2, 5, 72

第四趟:(12, 16, 28, 32),60, 2, 5, 72

第五趟:(12, 16 ,28, 32, 60),2, 5, 72

第六趟:(2,  12,  16,  28,  32,  60 ),  5,  72

第七趟:(2, 5,  12, 16, 28, 32, 60),  72

第八趟:(2, 5, 12,  16,  28,  32,  60,  72)

三、**實現

//插入排序演算法

#include

using namespace std;

void insertsort(int a,int n)

;int n=sizeof(a)/sizeof(int);

insertsort(a,n);  

cout<<"排序結果為:";

for(int i=0;icout

資料結構與演算法 插入排序

將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料 插入排序分為兩種 直接插入排序和希爾排序 插入排序與打撲克時整理手上的牌非常類似。摸來的第1張牌無須整理,此後每次從桌上的牌 無序區 中摸最上面的1張並插入左手的牌 有序區 中正確的位置上。為了找到這個正確的位置,須自左向...

演算法與資料結構 插入排序

例如 給定乙個無序陣列int arr n代表集合陣列的長度,給出乙個演算法將陣列arr按照從小到大的順序進行排列。插入排序 看當前位置i的值是否比它前乙個數小,如果小就與前面的數交換位置。public static void insertionsort int arr,int n public st...

資料結構與演算法 插入排序

基本思想 每一步將乙個待排序的元素,按其排序碼的大小,插入到前面已經排好序的一組元素的合適位置上去,直到元素全部插完為止。1.元素集合越接近有序,直接插入排序演算法的時間效率越高 2.時間複雜度 最優情況下 o n 最差情況下 o n 2 3.空間複雜度 o 1 它是一種穩定的排序演算法 4.穩定性...