data structure
meiyouwanzimian
这个作者很懒,什么都没留下…
展开
-
基数排序
主要步骤: 分配、 收集,然后对每一位做计数排序即可#include using namespace std;void assign(int* arr, int len, int* count, int radix){ int i; for(i=0; i<len; i++) { int k=(arr[i]/radix)%10; //arr[i]/radix 取个位、十位、原创 2011-10-22 17:48:04 · 215 阅读 · 0 评论 -
单链表的快速排序
方法一:单链表的快速排序和数组的快速排序在基本细想上是一致的,以从小到大来排序单链表为例,都是选择一个支点,然后把小于支点的元素放到左边,把大于支点的元素放到右边。但是,由于单链表不能像数组那样随机存储,和数组的快排序相比较,还是有一些需要注意的细节:1. 支点的选取,由于不能随机访问第K个元素,因此每次选择支点时可以取待排序那部分链表的头指针。2. 遍历量表方式,由于不能从单链表的末尾向前遍历,原创 2011-10-22 22:35:05 · 320 阅读 · 0 评论 -
挺简洁的一个快排, 递归及非递归
主要说下非递归的思路吧,就是把每次 p = partition(a, low, high) 的结果 low , p-1 , p+1, high都压栈#include "stdafx.h"#include #include #define MAX_SIZE 10using namespace std; typedef int elem;转载 2012-05-03 16:50:48 · 445 阅读 · 0 评论