#include#includeusing namespace std;
#define list_init_size 100
#define listincrement 10
#define elemtype int
typedef structsqlist;
//建順序表
void initlist_sq(sqlist &l)
//在第i位置插入元素e
void listinsert_sq(sqlist &l, int i,elemtype e)
int *p, *q;
q = &(l.elem[i - 1]);
for (p = &(l.elem[l.length - 1]); p >= q; --p) //將第i位置及其以後的元素後移乙個位置
*(p + 1) = *p;
*q = e;
++l.length;
}//直接插入排序
void insertsort(sqlist &l)
l.elem[j + 1] = t; //因為臨近for迴圈結束時進行了--j,因此插入位置為j=1}}
//列印
void printl(sqlist &l)
cout << endl;
}void main()
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 ...
C 直接插入排序
設計思路 1.首先把乙個元素的第乙個數看作乙個有序的數列 2.定義乙個游動的下標,指向有序序列中的最後乙個元素 2.從有序序列後乙個元素開始,往前比較,如果待比較元素比前乙個元素小的話,額外用變數盛著待比較元素,前乙個元素後移一位 游標減減 此時權當游標 1的位置已經空出 大的話,游標加一的位置即要...