8.在一个具有n个节点的有序单链表中,插入一个新节点并依然有序的时间复杂度是___
A..O1, B.O(n) C.(n*n) D.O(n;og2 n)
解
由图值知:将这个有序数插入即可,若有n个节点,共需插入的时间次数为n 次,故时间复杂度为O(1);
1.已知序列(17,18, 60,40,7,32,73,65,85),请给出采用冒泡排序方法对该序列作升序 排序时每一趟的结果。
解: 17,18,60,40,7,32,73,65,85
采用冒泡排序:(升序)
实际上冒泡排序在每趟中确定了一个有序序列
2-已知序列(503,87,512,61,908,170,897,275,653,462)请给出采用堆排序的方法对该系列作升序排列时的每趟结果。
解:
假设是大根堆://左右全小根。
堆排序的方法包括两种过程如下:建立堆和堆排序:
1.建立堆:这里是大根堆:
按层次存储到对应的二叉树中;2分总数逆向,顺序子数移动:
//待补充
3-已知序列(503,87,512,61,908,170,897,275,653,462)请给出采用基数排序的方法对该系列作升序排列时的每趟结果。
解:
基数排序的实质是:按各位,十位,百位,由低到高顺序排列(当两数相等时,按题意进行排列)。
按各位排列:
0 1 2 3 4 5 6 7 8 9
170 61 512 503 275 87 908
462 653 897
按各位排列:
170,61,462,512,503,653,275,87,897,908
按十位排列:
0 1 2 3 4 5 6 7 8 9
503 51 2 653 61 170 87
908 462 275 897
顺序为:503,908,512,653,51,61,462,170,275,87,897
按百位排列:
0 1 2 3 4 5 6 7 8 9
087 170 275 462 503 653 897 908
06 512
排列顺序为; 61,87,170,275,462,,512,503,653,897,908
4-已知序列(503,87,512,61,908,170,897,275,653,462)请给出采用快速排序方法排序的方法对该系列作升序排列时的每趟结果:
解:快速排序方法的实质是:插入顺序必是最后顺序;