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

原创 2015年07月06日 17:20:29

一、排序算法

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;

}


数据结构与算法入门(2)--预备知识(指针、结构体、动态内存分配)

我们知道程序=数据的存储+数据的操作+计算机程序设计语言。 想要实现典型的数据结构,需要选择一门合适的编程语言。个人认为,C语言是一个很好的工具。C中的指针能很好的实现链表以及以链表为基础的树与图等。...

数据结构体

  • 2012年07月24日 20:59
  • 6.17MB
  • 下载

数据结构共用体和结构体

  • 2010年12月01日 22:31
  • 1.44MB
  • 下载

Python中对复杂数据结构排序(类似C中结构体数据结构)

Python中排序主要有两个函数:sorted和列表成员函数sort,两者除了调用方式有些区别外,最显著的区别是sorted会新建一个排序好的列表并返回,而sort是修改原列表并排好序。sorted的...
  • Gonefar
  • Gonefar
  • 2014年11月14日 10:11
  • 3176

数据结构: 结构体与链表ppt

  • 2011年11月03日 12:30
  • 467KB
  • 下载

从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能...

机试算法讲解:第2题 结构体之快速排序

/* 题目: 学生成绩排序:成绩从低到高,姓名字母从低到高(区分大小写),年龄从低到高排序 输入: 3 abc 20 99 bcd 19 97 bed 20 97 输出: bcd 19 97 bed...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法一:排序和数据结构体
举报原因:
原因补充:

(最多只允许输入30个字)