直接插入排序(初級版)之C 實現

2022-02-04 09:01:28 字數 1326 閱讀 8440

直接插入排序(初級版)之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 ...