閾捐〃瀹炵幇鎺掑簭绠楁硶 - 鐧惧害鏂囧簱 联系客服

发布时间 : 星期四 文章閾捐〃瀹炵幇鎺掑簭绠楁硶 - 鐧惧害鏂囧簱更新完毕开始阅读737e31f88662caaedd3383c4bb4cf7ec4bfeb624

北京邮电大学信息与通信工程学院

comparision++; front->data = s->data; movement++; Node*x = p; Node*y = s; while (front->data < x->data) { comparision++; y->data = x->data; movement++; x = x->previor; y = y->previor; } y->data = front->data; movement++; } comparision++; p = p->next; s = s->next; } }

void LinkList::bubblesort() {

Node*s = front->previor; while (s != front) { Node*p = s; s = front;

Node*x = front->next; Node*y = x->next; while (x != p) { if (x->data > y->data) { comparision++; front->data = x->data; x->data = y->data; y->data = front->data;

movement = movement + 3;

第13页

//初始化无序元素位置 //本次无序元素位置 北京邮电大学信息与通信工程学院

s = x; //更新无序元素位置 } comparision++; x = x->next; y = y->next; } } }

void LinkList::Qsort(Node*x,Node*y) {

if (x->previor != y) { Node*pivot = partion(x, y); Qsort(x, pivot->previor); Qsort(pivot->next, y); } }

void LinkList::selectsort() {

Node*s = front->next; while (s != front->previor) { Node*p = s->next; Node*record = s; while (p != front) { Node*x = record; if (p->data < x->data) { comparision++; record = p; } comparision++; p = p->next; } if (record != s) { int a = record->data; record->data = s->data;

第14页

北京邮电大学信息与通信工程学院

s->data = a; movement = movement + 3; } s = s->next; } }

void LinkList::show() {

Node*x = new Node; x = front->next; while (x != front) { cout << x->data << setw(4); x = x->next; }

cout << endl << \比较次数:\ cout << \移动次数:\ cout << endl; }

LinkList:: ~LinkList() {

Node*p = front; while (p!=front) { Node*a = p; p = p->next; delete a; }

delete p; }

void showmenu(); int main() {

showmenu(); cin.get(); cin.get(); return 0; }

void showmenu()

第15页

北京邮电大学信息与通信工程学院

{

int jay1[7] = { 2,6,7,9,15,24,29 }; int jay2[7] = { 54,40,38,37,29,24,12 }; int jay3[7] = { 16,45,81,1,4,69,100 }; LinkList zzj1(jay1, 7); LinkList zzj2(jay2, 7); LinkList zzj3(jay3, 7);

cout << \正序数据:\cout << \逆序数据:\cout << \乱序数据:\int choice;

cout << \请选择所要操作的内容:\\n\ \插入排序 2.冒泡排序\\n\ \快速排序 4.简单选择排序\\n\ \退出\\n\cin >> choice; int count = 0; Node*x, *y, *z; while (choice != 5) { switch (choice) { case 1: if (count != 0) { x = zzj1.front->next; y = zzj2.front->next; z = zzj3.front->next; for (int i = 0; i < 7; i++) { x->data = jay1[i]; y->data = jay2[i]; z->data = jay3[i]; x = x->next; y = y->next; z = z->next; } zzj1.comparision = zzj1.movement = 0; zzj2.comparision = zzj2.movement = 0;

第16页