Tag: 插入排序

C – 如何调用链表中的第一个元素?

我想要一个链表来排序,然后能够显示它。 我的代码的问题是,我可以在排序之前显示它,但在排序后,它将不会显示,它将崩溃。 我认为它与“top”变量有关,因为通过调试,它不包含任何内容。 如何调用链表中的第一个元素并使用它来显示它们? 我真的很困惑。 以下仅是显示和排序function。 //Sort and display all employees void displayAllEmps() { if(numEmps == 0) { printf(“No employees are hired.”); fflush(stdout); } else { char output[80]; struct EMP* emp = top; int i; for(i = 1; i next; } } } //Sort function to call insertion sort function void sortEmps() { temp = […]

c插入排序错误

我正在进行交流插入排序,它工作正常,但排序后第一个数字总是一个奇怪的负数,程序错误。 #include #include #include void insertionSort(int list[], int last){ int hold; int walker; int current; int count; count = 0; for (current = 1; current = 0 && hold < list[walker]; walker–){ list[walker + 1] = list[walker]; } list [walker + 1] = hold; count++; } printf("\n\nHow many passes to sort?\n%d\n\n", count); return; } int […]

使用链表在C中插入排序

我必须制作电话目录程序。 程序应该从文件中读取名称和数字。 我已成功创建包含此数据的链接列表。 现在我想按字母顺序对它们进行排序。 我该怎么做?

在C中的链表上插入排序?

我试过寻找类似于我的问题,但没有找到太多帮助。 我有这种结构的链表: struct PCB { struct PCB *next; int reg1, reg2; }; 我首先创建10个以这种方式链接在一起的PCB结构: for(i=20;ireg1 = i; curr->next = head; head = curr; } 然后我需要再创建20个PCB结构,但是需要使用rand()生成它们的reg1值。 我正在这样做: for (j = 0;jreg1 = rand()%100; curr->next = head; head = curr; } 但是,当使用随机reg1值将这些PCB结构插入到链表中时,我需要按顺序将它们插入到链表中(插入排序)。 在单链接链表中处理此问题的最佳方法是什么? 谢谢 编辑:我现在正在跟踪第一个创建的结构,以便能够从头开始循环链接列表: // create root struct to keep track of beginning of linked list root […]

在OpenMP中插入排序

我正在尝试为插入排序编写OpenMP解决方案,但我遇到问题,让它并行运行并给出正确的结果:)。 有没有办法让Insertion排序并行运行。 这是我的代码: void insertionsort(int *A, int num) { // clock_t start, stop; // // start=clock(); int k; #pragma omp parallel for shared(A) private(k) for(int n = 1; n 0 && A[k-1]> key;k–) { A[k] = A[k-1]; } A[k] = key; } // stop=clock(); // cas = (double)(stop-start)/CLOCKS_PER_SEC; }