我正在嘗試不同的排序技術,用於C中的單鏈表。但是我堅持使用指針重排方法進行選擇排序。 這是到目前爲止我的代碼c中的鏈表的選擇排序
typedef struct node {
int data;
struct node *next;
} Node;
void llselectionsort(Node *head) {
Node *marker, *cur = NULL, *min;
for(marker = head; marker != NULL; marker = marker->next){
min = marker;
for(cur = marker->next; cur != NULL; cur = cur->next){
if(cur->data < min->data) {
min = cur;
}
}
Node *tmp = marker;
marker = min;
tmp->next = marker->next;
min->next = tmp;
}
}
我想我可能會使用一個比需要更少的指針,但我仍然不確定。任何幫助將不勝感激謝謝。
(注:我知道選擇排序被認爲是低效的,但是我想了解如何實現它無論對於較小的列表排序)
你真正的問題是什麼?請解釋預期行爲,實際行爲以及與此相關的具體問題。 – kaylum