Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149961
  • 博文数量: 28
  • 博客积分: 1646
  • 博客等级: 上尉
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-12 14:28
文章分类

全部博文(28)

文章存档

2013年(28)

我的朋友

发布时间:2013-03-14 11:38:10

二分查找:又称折半查找。基本思想:前提条件是待查找集合有序,首先将待查值与中间元素比较,若相等,则找到;若小于中间元素,则后续查找在左半区间查找,否则在右半区间查找。需要连续存储,时间复杂度是O(logn).点击(此处)折叠或打开int binary_search(int a[], int size, int value.........【阅读全文】

阅读(1267) | 评论(0) | 转发(0)

发布时间:2013-03-14 11:16:44

选择排序:基本思想:假设待排序集合有n个元素,需要进行n-1趟排序,每次排序从未排序集合中选出最小的元素,加入到已排序集合末尾。时间复杂度为O(n*n),空间复杂度为O(1)。支持数组或链表。点击(此处)折叠或打开void selection_sort(int a[], int n){ .........【阅读全文】

阅读(1231) | 评论(0) | 转发(0)

发布时间:2013-03-13 11:55:55

冒泡排序基本思想:交换排序的一种,对待排序元素两两比较,如果顺序不一致,则交换元素,一趟排序好,最小元素就位。然后对剩余元素重复这个过程,直到全部元素就绪。可以通过设置交换标志进行优化,避免多余的交换过程。点击(此处)折叠或打开inline int swap(int *a, int *b){.........【阅读全文】

阅读(1755) | 评论(0) | 转发(0)

发布时间:2013-03-12 17:56:51

快速排序算法原理:从待排序集合中选取一个元素为基准,然后对待排序元素进行一趟排序,排序结果保证基准元素前面的元素都小于基准,右边的元素都大于基准。这样将集合划分为两个子集,然后对子集进行递归排序。点击(此处)折叠或打开void inline swap(int *a, int *b){ .........【阅读全文】

阅读(1322) | 评论(0) | 转发(0)

发布时间:2013-03-11 17:42:36

插入排序原理:将待排序的集合分为两个子集,一个是已排序子集,一个是未排序子集。插入排序的过程就是从未排序子集中逐个取出元素插入到已排序自己中。集合可以是数组,也可以是链表。插入排序的时间复杂度是O(n*n)。插入排序算法实现:点击(此处)折叠或打开/* * i.........【阅读全文】

阅读(1405) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册