队列是一种列表,但它只能在队头删除元素,并在队尾插入元素。
所以,它是一个有序的列表,是先进先出的。
就像在银行排除一样,先到先办,新人排在后面。
可以使用队列对数据进行排序操作,这种方式被称为“基数排序”。
它的效率不高,但胜在容易理解。
以0 ~ 99 之间的数字为例,基数排序方法将会对这些数字排列二次,
第一次是按个数排序,
第二次是按十位上的数字大小进行排序,
排序时的每个数字按大小被分在不同的数组里。
例如有以下这些数字:
87,23,73,56,38,95,74,24
第一次是比较个数上的数字,然后按大小存到数组里,
就是这样的:
arr-0:
arr-1:
arr-2:
arr-3: 23, 73
arr-4: 24, 74
arr-5: 95
arr-6: 56
arr-7: 87
arr-8: 38
arr-9:
然后按数组的顺序,这些数字第一次的排序结果如下:
23,73,24,74,95,56,87,38
然后再来第二次,根据十位上的数字大小再排一次,
然后分配到不同的数组里,就这样:
arr-0:
arr-1:
arr-2: 23,24
arr-3: 38
arr-4:
arr-5: 56,
arr-6:
arr-7: 73,74
arr-8: 87
arr-9: 95
再将数组中的数字取出,存入数组,
即为排好的数字:
23,24,38,56,73,74,87,95