知识点:堆栈,队列,排序算法
堆栈:
一.基本概念: 栈顶,栈底,出栈(pop),入栈(push),空栈
1.堆栈(Stack):先进后出的线性表(Last in first out ——LIFO)
特点:(1).只在其中一头(栈顶)进行数据的插入和删除
(2).先进后出或后进先出的 线性表
2.入栈:将元素添加到堆栈中 ,压栈(push)
出栈:将元素中堆栈中取出,弹栈(pop)
队列:
特点:先进先出(FIFO),两头都可以进行操作,队头(front)删除元素,队尾(rear)加入元素
算法:
1.冒泡排序—基本思想:比较两个相邻的数,将较小的放在前面,较大的放在后面,这样可以将这些数中最大的找出来放到最后,然后比较剩下的数,再在剩下的数中找出最大的,直到所有的数字都按照从小到大的顺序排列。
2.选择排序—基本思想:每趟从待排序的数据元素中选出最小(或最大)的一个元素,逐个排在已排好序的数列的最后,直到全部待排序的数据元素排完,选择排序相对于冒泡排序来说,他并不是每次发现逆序都交换,选择排序是不稳定的排序。
3.快速排序—基本思想:将一个大数组的排序问题,分解成两个小的数组的排序,而每一个小的数组又可以继续分解成更小的数组,这样这个数组的排序方式可以一直的递归分解下去,直到数组的大小最大为2。在第一次划分的时候选择一个基准元素,然后将它分解成左右两个无序的数组,并且,使得左边的所有数组元素都小于等于基准元素,右边的数组元素都大于等于基准元素,然后分别对左边和右边的数组递归做同样的操作。算法效率的关键在于如何分解数组,也就是如何确定数组的基准元素,或者选择数组中间的元素作为基准元素。