一、排序算法
1、桶排序法:最傻的方法。
2、冒泡排序:时间复杂度O(N^2),其实没什么用。
3、快速排序:Charles Antony Richard Hoare提出。
不像冒泡排序,只在旁边左右交换,每次交换式跳跃式的,所以平均时间复杂度是O(NlogN),最差情况也是O(N^2)。
step1、数组的两端开始往中心走,两两比较,大小不同交换。
step2、到达中心时,再分成两段,继续step1执行。
二、数据结构:
1、队列queue:First in First out (FIFO)
struct queue
{
int data[100];
int head;
int tail;
}
应用:广度优先搜索,队列优化的Bellman-Ford最短路算法
2、栈stack:Last in First out(LIFO),时间复杂度O(1)
typedef struct Node
{
} NODE, * PNODE;
//定义栈的结构体
typedef struct Stack
{
PNODE pTop;
PNODE pBottom;
} STACK, * PSTACK;
应用:子程序调用和返回。
3、链表linked list:
struct node
{
int data;
struct node *next;
}