直接插入排序(初級版)之c++實現
一、源**:insertsortlow.cpp
1二、執行效果/*直接插入排序思想:
2假設待排序的記錄存放在陣列r[1..n]中。初始時,r[1]自成1個有序區,無序區為r[2..n]。
3從i=2起直至i=n為止,依次將r[i]插入當前的有序區r[1..i-1]中,生成含n個記錄的有序區。4*/
56 #include7
using
namespace
std;8/*
定義輸出一維陣列的函式*/9
void print(int array, int
n)10
15 cout <
17/*
18首先在當前有序區r[1..i-1]中查詢r[i]的正確插入位置k(1≤k≤i-1);
19然後將r[k..i-1]中的記錄均後移乙個位置,騰出k位置上的空間插入r[i]。
20注意:
21若r[i]的關鍵字大於等於r[1..i-1]中所有記錄的關鍵字,則r[i]就是插入原位置。
22*/
23int insertsort(int array, int
n)24
52 array[j + 1] =temp;53}
54}55 cout << "
陣列排序結束了...
"<
56return
count;57}
5859
intmain()60;
63//
輸出原始陣列
64 cout << "
原始陣列是:
"<
65 print(array, 10
);66
//對陣列進行排序
67int count = insertsort(array, 10
);68
//輸出排序後的陣列
69 cout << "
排序後的陣列是:
"<
70 print(array, 10
);71 cout << "
共交換"
<< count << "次"
<
72return0;
73 }
c 實現直接插入排序
include includeusing namespace std define list init size 100 define listincrement 10 define elemtype int typedef structsqlist 建順序表 void initlist sq sq...
C 實現直接插入排序
直接插入排序在生活中最好的體現就是玩撲克牌,我們理牌的方式是把3和4移動到5的左側,再拿到一張2,把2移到最左側,拿到一張10,放最後邊,再拿到一張7,插入5與10中間。這裡我們的理牌方法就是直接插入排序。話不多說,直接上 這裡一步步給出不同的寫法 include include using nam...
直接插入排序 C 實現
原理 插入排序的基本操作是 有序插入 也就是將元素逐一插到有序序列中,保持序列有序,從而使有序序列的長度不斷增加。對陣列a n 排序時,起初a 0 被認為是長度為1的有序子串行。然後,按照有序插入法,i從1到n 1迴圈地將a i 插入到有序序列中。在插入a i 前,陣列a的前半段 a 0 至a i ...