直接插入法排序(c 單鏈表的實現)

2021-09-03 02:47:39 字數 950 閱讀 1292

具體排序過程是;

1、將整個記錄序列劃分為有序區和無序區,初始時有序區為待排序記錄中第乙個記錄,無序區包括所有剩餘待排序的記錄。

2、將無序區的第乙個記錄插入到有序區的合適位置中,從而使無序區減少乙個記錄,有序區增加乙個記錄。

3、不斷重複2,直到無序區只剩下乙個記錄為止。

#include using namespace std;

const int length(10);//元素個數

struct note

;class select

;select::select(int a, int n)//尾插法初始化單鏈表

r->next = null;

}void select::swap(note *m, note *n)//交換兩個結點的data值

void select::selectsortup()//簡單選擇法公升序排序

else

//比較得出最小的data值的結點;降序和公升序的這一函式僅僅只是此處的判斷不同,降序排序此處是 if (p->data < q->data)

else

} }}

void select::printlist()//輸出單鏈表序列

cout << endl;

}int main()

system("cls");

select test(a, n);

cout << "排序前的序列:";

test.printlist();

test.selectsortup();

cout << "排序後的公升序序列:";

test.printlist();

return 0;

}

排序 直接插入法

假設陣列a 1.從陣列開始位置出發,把a1視為只有乙個資料的有序陣列 2.從a2開始遍歷這個陣列,拿每乙個資料和前面的資料比較,如果前面的資料比這個資料大,那麼把前面的資料往後推乙個位置並記錄其下標,直到前面的資料比這個數小,那麼上乙個比這個數大的數的位置就是要插入的位置,從a2到an依次插入之後就...

DataStructure 直接插入法過程

加入一組測試資料 有點ugly的對齊 序號i0 1 2 3 4 5 6 7 8 9 10 初始為 哨兵 75 88 68 92 88 62 77 96 80 75 開始哨兵為空,即什麼東西都沒有 演算法 塊 void straghtinsertionsort sqlist s s r j 1 s r...

Java陣列排序 Java直接插入法

直接插入排序的基本思想是 將 n 個有序數存放在陣列 a 中,要插入的數為 x,首先確定 x 插在陣列中的位置 p,然後將 p 之後的元素都向後移乙個位置,空出 a p 將 x 放入 a p 樣可實現插入 x 後仍然有序。例 1本例子通過直接插入的方法對上述例子中的 number 陣列進行排序。建立...