算法一:排序和数据结构体

一、排序算法

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
{
int data;    //内容
  struct Node * pNext; //指向下一结点的指针
} NODE, * PNODE;  

//定义栈的结构体
typedef struct Stack
{
PNODE pTop;    //栈顶结点
PNODE pBottom;   //栈底结点
} STACK, * PSTACK; 

应用:子程序调用和返回。

3、链表linked list

struct node

{

int data;

struct node *next;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值