插入排序概述
有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為⊙(㎡)。是穩定的排序方法。
插入演算法(insertion sort)把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後乙個元素除外,而第二部分就只包含這乙個元素。在第一部分排序後,再把這個最後元素插入到此刻已是有序的第一部分裡的正確位置中。
#include #include void output(int a, int n);
int main()
; int n = 0, i = 0, k = 0, j = 0;
char x;
printf("請向容器中輸入從小到大的數\n");
while(scanf("%d", &a[i]) == 1)
}output(a, k);
fflush(stdin);
while(k <= 100)elseelse
}a[j+1] = n; //則插入到當前位置i+1的位置
k++;
i++;
}output(a, k);
if (k == 100)
printf("是否繼續插入,y | n: ");
fflush(stdin);
scanf("%c", &x);
if (x == 'n' || x == 'n')
break;
}return 0;
}void output(int a, int n)
插入排序之直接插入排序
依次將每個記錄 無序表 插入到乙個已排好序的有序表中,得到乙個新的,記錄增加1的有序表 向撲克牌中插入新牌,圖書館整理圖書 有n個數,將第乙個數看做乙個有序表,從第二個開始從後向前比較,第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把第三個數按大小...
插入排序之直接插入排序
packagesort.algorithm publicclassdirectinsertsort inttemp,j for int i 1 i data.length i data j 1 temp 輸出排序好的資料 for int k 0 k data.length k 直接插入排序,一般對於...
插入排序之直接插入排序
直接插入排序 時間複雜度o n 2 附加空間o 1 穩定排序 define crt secure no warnings include using namespace std define len 8 有len個元素要排 struct record void insertsort record a...