见识短浅的我长知识了
小结
让链表的get、insert、erase
等费时的操作在程序中时间复杂度仅有O(1)!!!
。说明,以后凡是要遍历一个链表类型的,更宽泛地讲,是有指针索引的,都在它的首端进行操作!!!
#include <iostream>
#include "bin_sort.h"
#include "linear_list.h"
using namespace std;
/***********文件说明************
* 文件名:bin_sort.cpp
* 文件功能:箱子排序
**/
/****************函数说明************************
* 函数名: void binSort(chain<studentRecord>& theChain, int range)
* 函数参数:一个记录学生成绩的链表,成绩输入范围
* 函数返回值:地址传递,从小到大排序的学生成绩链表
* 函数功能:使用链表的多个方法进行箱子排序
* 实现步骤:
1、连续删除链表的首元素,并将其插入插入相应的某个箱子的链表首位;
2、从最后一个箱子开始(按照从小到大排序),逐个删除每个箱子的元素,并将其插入一个初始为空的链表的首位
* 时间复杂度:如果不考虑内存分配异常的话,第一个for循环O(n),第二个for循环O(range),总的时间复杂度O(n+range)
**/
void binSort(chain<studentRecord>& theChain, int