关闭

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

176人阅读 评论(0) 收藏 举报
分类:

一、排序算法

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;

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19773次
    • 积分:507
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:26篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论