具體排序過程是;
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 陣列進行排序。建立...