基于分治法的快速排序

时间:2019-05-12 00:36:29下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于分治法的快速排序》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于分治法的快速排序》。

第一篇:基于分治法的快速排序

实验2.基于分治法的快速排序算法

实验内容

本实验要求基于算法设计与分析的一般过程(即待求解问题的描述、算法设计、算法描述、算法正确性证明、算法分析、算法实现与测试),针对快速排序算法从实践中理解分治法的思想、求解策略及步骤。

实验目的

 理解分治法的核心思想以及分治法求解过程;

 从算法分析与设计的角度,对快速排序算法有更进一步的理解。

环境要求

对于环境没有特别要求。对于算法实现,可以自由选择C, C++, Java,甚至于其他程序设计语言。

实验步骤

步骤1:理解问题,给出问题的描述。

步骤2:算法设计,包括策略与数据结构的选择

步骤3:描述算法。希望采用源代码以外的形式,如伪代码、流程图等; 步骤4:算法的正确性证明。需要这个环节,在理解的基础上对算法的正确性给予证明; 步骤5:算法复杂性分析,包括时间复杂性和空间复杂性;

步骤6:算法实现与测试。附上代码或以附件的形式提交,同时贴上算法运行结果截图;步骤7:技术上、分析过程中等各种心得体会与备忘,需要言之有物。

说明:步骤1-6在“实验结果”一节中描述,步骤7在“实验总结”一节中描述。

实验结果

问题描述

快速排序是一种划分交换排序,其基本思想是:通过一趟扫描将待排序的元素分割成独立的三个序列:第一个序列中所有元素均不大于基准元素、第二个序列是基准元素、第三个序列中所有元素均不小于基准元素。由于第二个序列已经处于正确位置,因此需要再按此方法对第一个序列和第三个序列分别进行排序,整个排序过程可以递归进行,最终可使整个序列变成有序序列。算法设计

快速排序采用分治策略

快速排序的基本思想是基于分治策略的,利用分治法可将快速排序的基本思想描述如下:设当前排序的序列为R【low:high】,其中low<=high,如果序列的规模足够小则直接进行排序,否则分三步处理:

A分解B求解子问题C合并 描述算法

void QuickSort(int R[],int low,int high){

int pivotpos; //划分后的基准元素所对应的位置

if(low

pivotpos=Partition(R,low,high);

QuickSort(R,low,pivotpos-1);

//对左区间递归排序

QuickSort(R,pivotpos+1,high);

//对右区间递归排序

} } 正确性证明

原始序列: 49 38 65 97 76 13 27 第一次扫描:

[27 38 13] 49 [76 97 65] 以27为基准元素

得到的序列: [13] 27 [38] 以76为基准元素

得到的序列:[65] 76 [97] 最终序列为:、27、38、49、65、76、97

算法复杂性分析

最坏情况O(n2)

ìO(1)n=1ïT(n)=íïîT(n-1)+O(n)n>1最好情况O(nlogn)

平均情况:O(nlogn)

1nT(n)=å(T(n-k)+T(k-1))+nnk=1 ìO(1)n=1ïT(n)=íïî2T(n/2)+O(n)n>1空间复杂性:

由于快速排序算法是递归执行,需要一个栈来存放每一层递归调用的必要信息,其最大容量应与递归调用的深度一致。最好情况下,若每次划分较为均匀,则递归树的高度为O(logn),故递归所需栈空间为O(logn)。最坏情况下,递归树的高度为O(n),所需的栈空间同为O(n).平均情况下,所需栈空间为O(logn)。

算法实现与测试

实验总结

在学数据结构这门课时,我们就学过多种排序,像冒泡排序,递归排序,堆栈排序,归并排序,快速排序等。这次的基于分治法的快速排序相对能熟悉一些,关键是依据所选的基准元素对序列进行划分即可。

第二篇:岗位排序法

岗位排序法、岗位分类法、因素比较法、要素计点法等岗位评价的方法各有特色,并不存在最佳方案

1.岗位评价法的种类

岗位排序法、岗位分类法、因素比较法、要素计点法

2.岗位评价法之一:岗位排序法

岗位排序法是目前国内外广泛应用的一种岗位评价方法,这种方法是一种整体性的岗位评价方法。岗位排序法是根据一些特定的标准例如工作的复杂程度、对组织的贡献大小等对各个岗位的相对价值进行整体的比较,进而将岗位按照相对价值的高低排列出一个次序的岗位评价方法。

排序时基本采用两种做法。

一、直接排序,即按照岗位的说明根据排序标准从高到低或从低到高进行排序。

二、交替排序法,即先从所需排序的岗位中选出相对价值最高的排在第一位,在选出相对价值最低的排在倒数第一位,然后再从剩下的岗位中选出相对价值最高的排在第二位,接下去再选出剩下的岗位中相对价值最低的排在倒数第二位,依此类推。

岗位排序法的主要优点是简单、容易操作、省时省力,适用于较小规模、岗位数量较少、新设立岗位较多,评价这对岗位了解不是很充分的情况。但是这种方法也有一些不完善之处,首先这种方法带有一些主观性,评价者多依据自己对岗位的主观感觉进行排序;其次,对岗位进行排序无法准确得知岗位之间的相对价值关系。

3.岗位评价法之二:岗位分类法

所谓岗位分类法,就是通过制定出一套岗位级别标准,将岗位与标准进行比较,并归到各个级别中去。岗位分类法好像一个有很多层次的书架,每一层都代表着一个等级,比如说把最贵的书放到最上面一层,最便宜的书放到最下面一层,而每个岗位则好像是一本书,我们的目标是将这些书分配到书架的各个层次上去,这样的结果我们就可以看到不同价值的岗位分布情况。因此,首先我们需要建立一个很好的书架,也就是岗位级别的标准。如果这个标准建立的不合理,那么就可能会出现书架中有的层次挤满了很多书,而有的层次则没有书,这样挤在一起的书就很难区分出来。

岗位分类法的关键是建立一个岗位级别体系。建立岗位级别体系包括确定等级的数量和为每一个等级建立定义与描述。等级的数量没有什么固定的规定,只要根据需设定,便于操作并能有效的区分岗位即可。对每一定等级的定义和描述要依据一定的要素进行,这些要素可以根据组织的需要来选定。最后就是要将组织中的各个岗位归到合适的级别中去。

岗位分类法是一种简便易理解和操作的岗位评价方法。适用于大型组织,对大量的岗位进行评价。同时这种方法的灵活性较强,在组织中岗位发生变化的情况,可以迅速的将组织中新出现的岗位归类到合适的类别中去。

但是,这种方法也有一定的不足,那就是对岗位等级的划分和界定存在一定的难度,有一定的主观性。如果岗位级别划分的不合理,将会影响对全部岗位的评价。另外,这种方法对岗位的评价也是比较粗糙的,只能得出一个岗位归在哪个等级中,到底岗位之间的价值的量化关系是怎样的也不是很清楚,因此在用到薪酬体系中时会遇到一定的困难。同时岗位分类法适用性有点局限,即适合岗位性质大致类似,可以进行

明确的分组,并且改变工作内容的可能性不大的岗位。

4.岗位评价法之三:因素比较法

因素比较法是一种量化的岗位评价方法,它实际上是对岗位排序法的一种改进。这种方法与岗位排序法的主要区别是:岗位排序法是从整体的角度对岗位进行比较和排序,而因素比较法则是选择多种报酬因素,按照各种因素分别进行排序。

分析基准岗位,找出一系列共同的报酬因素。这些报酬因素是应该能够体现出岗位之间的本质区别的一些因素,例如责任、工作的复杂程度、工作压力水平、工作所需的教育水平和工作经验等。将每个基准岗位的工资或所赋予的分值分配到相应的报酬因素上。

因素比较法的一个突出优点就是可以根据在各个报酬因素上得到的评价结果计算出一个具体的报酬金额,这样可以更加精确的反映出岗位之间的相对价值关系。一般在下列条件下因素比较法较为适用:需要一种量化方法,愿花大量的费用引入一种岗位评价体系;这种复杂方法的运用不会产生理解问题或雇员的接受问题,并且希望把工资结构和基准岗位的相对等级或劳动力市场上通行的工资更紧密联系起来。

应用因素比较法时,应该注意两个问题:一个是薪酬因素的确定要比较慎重,一定要选择最能代表岗位间差异的因素;第二个问题是由于市场上的工资水平经常发生变化,因此要及时调整基准岗位的工资水平。但是由于我国处于经济体制的转轨时期,多种薪酬体制并存;同时国内薪酬体制透明度较低,劳动力市场价格处于混沌状态,因而使用因素比较法的基础数据不足。目前因素比较法在国内基本未得到使用。

5.岗位评价法之四:要素计点法

要素计点,就是选取若干关键性的薪酬因素,并对每个因素的不同水平进行界定,同时给各个水平赋予一定的分值,这个分值也称作是“点数”,然后按照这些关键的薪酬因素对岗位进行评价,得到每个岗位的总点数,以此决定岗位的薪酬水平。要素计点法首先选择薪酬要素,并将这些薪酬要素建立起一个结构化的量表。专家委员会根据这个评定量表对岗位在各个要素上进行评价,得出岗位在各个要素上的分值,并汇总成总的点数,再根据总点数处在哪个岗位级别的点数区间内,确定岗位的级别。要素计点法主要的缺点是操作过程较为复杂,而且提前要与员工进行充分的沟通,以对要素理解达成共识。

要素计点法在下述情况下可能是最合适的:工作岗位资料稳定、清晰、完整,工资决策需要明确无误,是采用量化方法所费额外成本物有所值;而排列大量的极不相同的工作岗位的需要使考虑运用一系列通用因素成为必然。

第三篇:冒泡排序法教案

数据结构——冒泡排序(第19讲,第9章)

一、复习回顾

什么是排序:排序是把一个无序的数据元素序列整理成有规律的按排序关键字递增(或递减)排列的有序序列的过程。

/************************************************(已经学过的排序方法有:直接插入排序、希尔排序、直接插入排序:顺序的把待排序序列中的各个记录按其关键字的大小,插入到已排序的序列的适当位置。

希尔排序:(缩小增量排序),不断把待排序的记录分成若干个小组,对同一组内的记录进行排序,在分组时,始终保持当前组内的记录个数超过前面分组排序时组内的记录个数。)

************************************************/

二、第一小节(目标:理解掌握冒泡思想)

1、给出冒泡排序的定义(25分钟)

将待排序序列中第一个记录的关键字R1.key与第二个记录的关键字R2.key作比较,如果R1.key>R2.key,则交换记录R1和R2在序列中的位置,否则不交换;然后继续对当前序列中的第二个记录和第三个记录作同样的处理,依此类推,知道序列中倒数第二个记录和最后一个记录处理完为止,我们称这样的过程为一次冒泡排序。

2、请学生上台做排序练习(15分钟做题+10分钟讲解)(巩固排序思想的掌握)

第一题: 38 5 19 26 49 97 1 66 第一次排序结果:5 19 26 38 49 1 66 [97] 第二次排序结果:5 19 26 38 1 49 [66 97] 第三次排序结果:5 19 26 1 38 [49 66 97] 第四次排序结果:5 19 1 26 [38 49 66 97] 第五次排序结果:5 1 19 [26 38 49 66 97] 第六次排序结果:1 5 [19 26 38 49 66 97] 第七次排序结果:1 [5 19 26 38 49 66 97] 最后结果序列: 1 5 19 26 38 49 66 97

第二题: 8 7 6 5 4 3 2 1

数据结构——冒泡排序(第19讲,第9章)

答 第一次排序: 7 6 5 4 3 2 1 [8] 第二次排序: 6 5 4 3 2 1 [7 8] 第三次排序: 5 4 3 2 1 [6 7 8] 第四次排序: 4 3 2 1 [5 6 7 8] 第五次排序: 3 2 1 [4 5 6 7 8] 第六次排序: 2 1 [3 4 5 6 7 8] 第七次排序: 1 [2 3 4 5 6 7 8] 最后结果序列: 1 2 3 4 5 6 7 8

第二题: 1 2 3 4 5 6 7 8 第一次排序: 1 2 3 4 5 6 7 [8] 第二次排序: 1 2 3 4 5 6 [7 8] 第三次排序: 1 2 3 4 5 [6 7 8] 第四次排序: 1 2 3 4 [5 6 7 8] 第五次排序: 1 2 3 [4 5 6 7 8] 第六次排序: 1 2 [3 4 5 6 7 8] 第七次排序: 1 [2 3 4 5 6 7 8] 最后结果序列: 1 2 3 4 5 6 7 8]

从练习题中引出:一次冒泡排序的结果:使关键字最大的记录排在了序列的最后一个位置上。(这很重要,要强调)

比较后两题的题目区别和排序过程区别,作为课间思考题。(第二题是一组逆序数据,每一个排序都进行了数据交换,共进行了8-1=7次冒泡;第三题是一组正序数据,进行完一次排序后就发现,没有任何数据交换发生,后面进行的第二次到第七次冒泡的过程完全一样。)

三、第二小节

3、冒泡排序终止的条件(20分钟)

课堂思考题:考虑任何一组序列最多进行多少次冒泡排序就可保证顺序一定已经排好了。

思考:如果序列初始顺序是逆序,需要进行多少次排序(要记住,数据结构——冒泡排序(第19讲,第9章)

每次冒泡排序的结果:可以保证最大的记录在最后一个位置上)。如果序列初始顺序是正序,需要进行多少次排序就可以保证数据序列顺序。如何使排序过程适可而止?既排好序又不多余进行?

当计算机对一组数据进行排序之前,并不知道该组数据是什么顺序,因此,必须要进行至少一次的比较和排序,当某一比较和排序进行完之后发现没有任何数据交换发生,证明任何相邻的两数都符合目标顺序要求,因此,也不必再进行下一下比较排序了。

结论:当进行某次冒泡排序时,若没有任何两个记录交换位置,则表明序列已排好,此时排序可结束。

4、用文字(伪码)描述冒泡排序算法(15分钟)思考方法:

首先是对数组的相邻的两数比较,根据比较结果确定是否交换位置;这种比较进行的次数比数据列中数据个数少1;

(此两步完成了一次冒泡排序)

对一个序列来说,共进行多少次冒泡排序呢?最多和上面第二步的比较次数一样,但也可提前结束,只要在某一遍冒泡中没有发生数据交换即可。如何确实是否发生数据交换,在程序中,可以考虑设置一个标志位,当发生数据交换时,更改标志位,每次重新进行冒泡排序之前可以检查标志位,如果没有发生改变,则可证明上一次冒泡已经没有数据交换发生,也就是说数据序列已经排好,可以停止进行冒泡排序。

冒泡算法函数 { 设置标志位;

//以下循环用来控制冒泡排序进行的次数

数据结构——冒泡排序(第19讲,第9章)

for循环(对n个数据的序列进行n-1次冒泡,但是如果没有交换发生则跳出该循环){ //以下循环用来对该数据序列进行一次冒泡排序 for(单次冒泡排序需要进行n-1次){ 比较相邻两数的大小;

if(前大后小){ 交换 } else //前小后大 {

位置不变 } } } }

5、回顾总结冒泡排序的思想(10分钟)本节课:

1.首先回顾了什么是排序;

2.然后介绍了冒泡排序的思想;(每次冒一个泡泡,把最大的冒到最后)3.我们通过三道练习题对一组无序数据进行了排序;

4.通过练习题我们看出来,数据初始序列越接近目标序列,冒泡的次数越少;因此我们总结出了冒泡排序最多进行的次数和终止的条件; 5.最后,我们根据冒泡排序的思想用文字描述了冒泡函数的构成方法;

四、课后作业

1、用冒泡排序法对数字序列进行排序(要写出6次排序步骤)

55 48 37 10 90 84 答 55 48 37 10 60 84 90 48 37 10 55 60 84 90 37 10 48 55 60 84 90 10 37 48 55 60 84 90

数据结构——冒泡排序(第19讲,第9章)

10 37 48 55 60 84 90

2、用C语言描述冒泡排序算法。

Void BubbleSort(elemtype x[],int n)//传入序列和序列数字个数 {

int i,j,flag=1;elemtype

temp;for(i=1;i x[j+1].key){ flag=1;temp=x[j];x[j]=x[j+1];x[j+1]=temp;} } } }

第四篇:《算法导论》学习总结——快速排序

《算法导论》学习总结——快速排序

曾经在程序员杂志上看到快速排序的作者,Hoare,曾经的图灵奖获得者啊,牛光闪闪的。不过当时,对快速排序什么的,印象不算深刻,毕竟没好好学。记得当时杂志上说到的是,快速排序,应该是目前最快的内部排序算法(虽然独立到语言上,C++的sort会比调用快速排序快)。现在就进入快速排序的美好复习吧。

与归并排序类似,快排也用分治模式。主要是三个步骤:

1)分解:将数组A[p....r]划分为2个子数组A[p....q-1]和A[q+1....r],使前一个每个元素都小于A[q],后一个数组,每个元素都大于A[q](q在划分过程中计算)

2)解决:递归调用快速排序,对2个子数组进行排序

3)合并:因为2个子数组是就地排序,所以合并不用操作,数组已排序

看到这个合并,就想到啊,和归并比,一个从小到大,一个从大到小,差距就是这么大,快排么得合并开销,一下就省了很多啊,说明,方向很重要啊,如同那句,同样一个B,S与N的差别,大家都懂的。

快速排序的实现代码如下:

        //=================

// Name : Qsort.cpp

// Author : xia

// Copyright : NUAA

// Description : 快速排序的实现

//=================

#include

#include

#include

 #include

 #include



 using namespace std; const int MAX = 1000;

 void WriteToFile(vector v)

 {//将v写入文件,纯看排序结果是否正确,也可以写个test()

 int i; ofstream result(“Qsort.txt”);

if(result.fail()) {

 cout << “ open data error ” << endl; exit(EXIT_FAILURE); }



for(i=0;i

 result << v[i] << “ ”; }

 result.close(); }

 int Partion(vector &A,int p ,int r) {//数组划分



int x=A[r];//x都感觉没用 

int i=p-1;



for(int j=p;j



if(A[j] <= x) {  i++;

 swap(A[i],A[j]); }  }

 swap(A[i+1],A[r]);

return i+1; }

 void Qsort(vector &A, int p ,int r) {//递归快排



if(p < r) {



int q = Partion(A,p,r); Qsort(A,p,q-1); Qsort(A,q+1,r); }  }

 int main(int argc, char **argv) {

 vector v;

int i;



for(i=0;i< MAX;i++) v.push_back(i);

 random_shuffle(v.begin(),v.end());//打乱 

 Qsort(v,0,v.size()-1); WriteToFile(v);



return 0; }

说到代码,很惭愧的,http://)由于以下两个原因:

1)做格式化时,结果常常是扭曲的,所以得不到正确的随机数(如某些数的出现频率要高于其它数)

2)rand()只支持整型数;不能用它来产生随机字符,浮点数,字符串或数据库中的记录

所以采用了STL函数random_shuffle(),先随机生成0到MAX-1的随机数,用random_shuffle()打乱,再进行排序。

另外,其实Hoare老师用的快排并不是如上代码所示,也就是说,最原始的快速排序,是这样滴:

int HoarePartion(vector &A, int p , int r) {



int x=A[p];

int i=p-1;

int j=r+1;

while(1) {



while(A[--j] > x);



while(A[++i] < x);

if(i

 swap(A[i],A[j]);

else

 return j; }  } 

 void Qsort(vector &A, int p ,int r) {//递归快排 

if(p < r) {



int q = HoarePartion(A,p,r); Qsort(A,p,q); Qsort(A,q+1,r); }  }

也可以参考:http://tayoto.blog.hexun.com/25048556_d.html,区别只是我的代码直接while里面用A[--j],可读性不高,因为着实不喜欢do-while结构。

对于最原始的快排,严蔚敏老师的《数据结构》是这样实现的:

int Partion(vector &v ,int low ,int high) {//对vector进行划分,返回枢轴下标 

int pivotkey; pivotkey = v[low];

while(low < high) {



while(low < high && v[high] >= pivotkey) high--; v[low] = v[high];



while(low < high && v[low] <= pivotkey) low ++;

 v[high] = v[low]; }

 v[low] = pivotkey;

return low; }  void quickSort(vector &number ,int left ,int right) {



if(left < right) {



int i = Partion(number , left, right);

 quickSort(number, left, i-1);// 对左边进行递归

 quickSort(number, i+1, right);// 对右边进行递归  }  }

当然,区别都只是在划分的过程,毕竟分治,才是快排的精髓嘛,不过这俩大同小异。

快排的运行时间,显然与划分是否对称有关,要是直接划分出来,是一个最不均衡的二叉树,那就够喝一壶的了,跟插入排序似的。下面网址有说法,是快排隐藏的二叉排序树思想,其实可以参考,虽然只是个人理解http://bbs.chinaunix.net/viewthread.php?tid=1011316。其实说到二叉,堆排序不也是吗?区别只是堆排序显式的建堆,也就构成了一笔不小的开销,如果考虑隐藏排序二叉树的话,倒是可以理解为毛快排快于堆排。

由于快排平均情况下效果显然很良好,那么怎么得到平均情况就是个值得思考的问题,所以书上给出了,在划分的时候,随机获取一个数作为枢轴,而不是用我们的A[low]。于是我们得到了快排的随机化版本如下:

int Partion(vector &A,int p ,int r) {//数组划分



int x=A[r];

int i=p-1;



for(int j=p;j



if(A[j] <= x) {  i++;

 swap(A[i],A[j]); }  }

 swap(A[i+1],A[r]);

return i+1; }

 int RandomPartion(vector &A,int p ,int r) {//在A[p]到A[r]中随机划分 

int i= p + rand()%(r-p+1);//i<-RANDOM(p,r)

 swap(A[r],A[i]);

return Partion(A,p,r); }

 void RandomQsort(vector &A, int p ,int r) {//递归快排



if(p < r) {



int q = RandomPartion(A,p,r); RandomQsort(A,p,q-1); RandomQsort(A,q+1,r); }  }

与常规快排的区别,就是在划分的时候,获取一个随机数下标,再用其数组中的值作为枢轴,当然,这样就充分考虑平均性能了。

还有一种改进RANDOM-QUICKSORT的方法,就是根据从子数组更仔细地选择的(而不是随机选择的元素)作为枢轴来划分。常用的做法是三数取中。可以参考:

http://blog.csdn.net/zhanglei8893/article/details/6266915

本章最后还提到个很蛋疼的Stooge排序,实现如下:

void StoogeSort(vector &A, int i ,int j) {//递归快排



if(A[i] > A[j]) swap(A[i],A[j]);

if(i+1 >=j)

return;



int k =(j-i+1)/3;

 StoogeSort(A,i,j-k);//前2/

3 StoogeSort(A,i+k,j);//后2/3

 StoogeSort(A,i,j-k);//又前2/3

 // StoogeSort(A,i,i+k-1);// 如果采用1/3排不出来啊

 }

对于数组A[i...j],STOOGE-SORT算法将这个数组划分成均等的3份,分别用A, B, C表示。第8、9行从宏观上来看它进行了两趟,结果是最大的1/3到了C,最小的1/3到了B,从宏观上来看,整个数组的三个大块就有序了,再进行递归,整个数组就有序了。第8和第9行,可以看做一个冒泡过程。

不过从运行时间的测试来讲,很不给力(具体数据就不列了)。STOOGE-SORT最坏情况下的运行时间的递归式

T(n)= 2T(2n/3)+Θ(1)由主定律可以求得T(n)=n^2.71,相比插入排序、快速排序的Θ(n^2)和 堆排序、合并排序的Θ(nlgn),不给力啊。参考自:http://blog.csdn.net/zhanglei8893/article/details/6235294。

本章最后,练习7-4还提出个尾递归的概念,起因是QuickSort的第二次递归调用不是必须的,可以用迭代控制结构来替代。如:

QUICKSORT'(A, p, r)1 while p < r 2

do ▸ Partition and sort left subarray.3

q ← PARTITION(A, p, r)4

QUICKSORT'(A, p, q-1)5

p ← q + 1

具体 有效性的证明可以参考:http://blog.csdn.net/zhanglei8893/article/details/6236792,需要说明的是,当数组正序时,其递归深度和栈深度都为Θ(n)。

第五篇:绩效考核方法_排序考核法

第五种,排序考核法

这也是目前比较流行的辅助性考核方式,就是建立排行榜,来自于传统的金榜提名,与社会上各类排行榜类似,发挥刺激作用,如各类体育竞赛的奖牌榜就是这种方式的典范。一般也会与奖罚挂钩。最典型的是末尾淘汰制,一般用于上山型人员。

销售系统的各类排行榜:

月度回款排行榜

月度销售额冠军

月度大客户冠军

还可以倒数排名,如全勤倒数排名、回款倒数排名

其他:

月度合理化建议排行榜,月度某类行动排行榜

第六种,关键业绩指标法(KPI)

这就是目前最为流行的比较系统的绩效考核方法。KPI已经成为企业界的流行缩写了。

KPI是一种关键绩效指标的缩写,有两种说法:

一种美式说法,关键绩效指标即,Key Performance Indicator。这是来自美国哈佛大学商学院的说法。

另一种是来自英式,Key Process Indication。

现在,国内主要采用美式说法。这种方法的优点在于,对于考核的指标进行了归类,并对其中影响力最强的指标突出了出来,避免了指标的杂乱无章和如海的繁杂指标体系。何谓关键?

我们认为,关键指标主要是有两类:

一类是与岗位职责相关的指标;

一类是与上级要求完成任务的指标。

如何选取?

一般的做法是,用SMART原则选取可以执行的目标,从关键成功领域和关键价值树中寻找关键绩效指标。

这种做法在大企业中已经形成共识,并颇为盛行。

对于广大的中小企业,不要搞这么复杂,只要抓住“关键”二字即可:目前公司最为关注的、上级领导最为关心的,就是“关键”; 属于自身核心职责的、岗位中最为基本的,就是“关键”。

指标分类

选多少指标合适?

国富创新管理咨询公司拥有了9年的实践经验,为350多家企业提供了绩效考核的咨询,涉及行业20多个,一般先帮助企业建立完善系统的指标库,然后根据上述“关键”定义抽取KPI。

咨询经验告诉我们,一个岗位上的KPI不宜过多,大概在5-7个,占其岗位考核指标库的30%。一般而言,30%以上的抽样基本上能够反映一个岗位的关键状态了。

一般情况下,一个人数较多、事情比较复杂的部门,部门经理的KPI为5-7个;而一个人数较少、事务单一的部门,部门经理的KPI可能就是1-3个。指标太多了,增加了考核的难度和工作量,不容易坚持。

确定KPI的关键要求:

首先,要确定上级或公司对于这个岗位的最重要要求(因为不同的阶段,公司领导对于一个岗位的关键要求也会略有不同)。

其次,将这种要求的结果定义加以明确。

第三,深入了解该岗位的核心职责及其对于首要任务的影响度。

第四,反复沟通该指标成为目标的可行性(是否符合SMART原则)。

例如,营销总监的指标第七种,平衡计分卡法(BSC)

这是目前最为流行的绩效考核方法,跨国公司和国内的大中型企业基本上都采取了这种方法。

这应该是目前最为综合型的一种方法。它拥有明显的综合性,或者叫做平衡性,基本上是综合了KPI、记分制、多方面考核的要素而集成的。

平衡计分卡的英文简称为BSC,是Balanced Score Card的缩写,源自哈佛大学教授卡普兰与诺朗顿研究院(Nolan Norton Institute)的首席执行官David 诺顿于上世纪90年代提出来的。

一些专家认为,BSC太复杂,对于基础数据的依赖性太强,建议中小企业不要用,我觉得,这是偏见,或者研究不到位造成的。

该方法强调了“平衡”,尤其强调财务指标与非财务指标的平衡,核心是要求管理者不应仅仅突出财务指标的完成,还要照顾其他指标的完成,要求管理者在选取KPI的时候,不要一味的关注财务指标或其他指标。

在BSC的发明者看来,要首先公司的战略目标,需要关注四类指标,这四类指标相互制约,构建协同型组织,直接影响着战略目标的达成,因此,他们称由此四类指标组成的指标树为“战略地图”。

这四类指标包括:

财务类指标:这是基础性指标,公司存在的根基。

客户类指标:将满足客户需求行为指标化,关注客户满意。

内部运营指标:这是对于内部管理的评价。

学习与成长指标:这是对于公司长远发展投入的评价。

大家可以看到,这种比较系统的评价体系,明显具有战略性,照顾了长远性,这是以往任何一种评价体系都没有照顾到的,至少没有将这些指标有机的结合在一起。

这是一次革命性的突破。

一个注重长远利益的公司一般愿意采用这种评价方式。

指标体系可以不完美,但是可以起步走。

一个规模比较小的企业,也可以对聘来的总经理以及中高层管理者进行BSC的考核,避免他们只关心某些指标,比如营销总监,不仅考核他经济业绩指标的完成,还要考核他对于制度建设、团队建设的指标,包括你在内部管理上建立了什么样的制度(内部运营)、你给员工进行了什么样的培训(学习与成长)、你的任期内,客户满意度提升多少(客户类)。BSC基本上是KPI的高级分类方法。

值得注意的是,这四类指标不是同样的权重,可以根据公司的战略目标要求和阶段任务,选择不同的权重。

因此,BSC的平衡性是任何一种考核法不能比拟的:

关注了长远目标(成长)和短期目标(财务)的平衡;

关注了财务目标(财务)和非财目标(其他)的平衡;

关注了内部目标(运营)和外部目标(客户)的平衡。

有人问:周博士,这些指标如何选取呢?

其实,这种指标的选取与KPI指标的选取是一样的,只是KPI的高级分类方法,不过,它更注重这些指标对于战略目标的支撑度。

运用BSC方法需要注意的关键点:

首先,公司四大类指标的权重取决于公司战略目标的重点,部门指标的权重取决于部门的任务重点和职责。

其次,要通过深入沟通注意目标值的上下平衡,与上级的目标值保持一致,以便形成公司的战略地图。

建议:下面指标的总和要大于总目标,避免完不成第三,提前做好宣传和相关技术的训练,通过各类通俗易懂的方式让所有员工都清晰的理解这种方法的合理性。

第四,最好是与外部咨询顾问一起选取相关指标并构建BSC体系,因为其中需要耐心的大量沟通,也需要专业的技术,如指标权重的选择、指标值的测算、相关数据的采集。案例:某司法培训学校

第八种,经济附加值考核法(EVA)

EVA是经济附加值英文名称Economic Value Added,的缩写简称,是由美国学者Stewart提出的一套考核方法,主要用于股东对经营层的考核。

它是基于税后营业净利润和产生这些利润所需资本投入总成本的一种考绩效考核方法,侧重于财务评价。

这是目前比较高级的一种考核方法,国资委对于央企采取了这样的考核方法。

其实,这也不像听起来那么高端,我们公司内训体系长期实施的净利润考核方法就是这种的变种,只是对于收入数据和成本数据的要求比较严格。从定义上看,EVA指标所考核的是一种在扣除了资本成本之后的营业利润。它不再是我们所说的会计利润,而成为一种经济利润(即扣除了机会成本)。所以,EVA指标与传统的会计指标不同,它是一种从投资者的角度,追求利益最大化的指标体系。

它的一般计算公式是:

EVA=税后利润-资本费用

其中:税后利润=营业利润-所得税额。

资本费用=总资本×平均资本费用率

其中:平均资本费用率=资本或股本费用率×资本构成率+负债费用率×负债构成率。

目前,我国使用如此考核方法的主要是些控股型的超大型企业,核心群体是中央企业,因其计算复杂、操作复杂,对于会计手段和数据收集的要求比较高,很多企业不敢使用,我建议中小企业的企业家听听就可以了,以后规模大了或者上市以后再说。

而且,该方法强调财务指标体系,对其他指标有所忽略,因此,局限性比较明显,主要适合于投资控股型企业。

以上方法往往是混合使用,选择不能偏废,一定要将主动权把握在于自己手中,周博士推荐使用的是混合型考核,并与国富团队一起开发了混合型的国富考核方法,这种方法尤其适用于我国的中小企业,大型企业也可使用。

绩效管理的9大关键点:

关键点1:绩效管理体系建设要内部人员与外部专家相结合。

关键点2:绩效管理也是一把手工程,高层要有真正的决心

关键点3:绩效考核的具体操作部门要深入掌握工具和政策

关键点4:通过多层次沟通,统一思想、建立对话语言平台

关键点5:指标及指标体系要与当事人反复磨合,深入了解指标产生的源头关键点6:避免棘轮效应的负效应

关键点7:深入研究指标提取方法,注意对于人与事务的分类合理化

关键点8:不能完全依赖模式,要实现经验要素与客观要素的相结合关键点9:一定要与薪酬奖罚、任职任用相结合。

下载基于分治法的快速排序word格式文档
下载基于分治法的快速排序.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    作文快速构思十五法

    作文快速构思十五法 考场作文特别强调主旨的显豁集中和思路的一目了然,因为高考阅卷老师不清楚考生的作文功底,短时间内又难以细细揣摩文章。平时作文,有些学生喜欢写些含蓄的......

    五步快速作文练习法

    首先强调的是,这里的作文特指高考应试作文。应试作文,在写作当中应该是一种特殊的写作样本。它是在一定要求之下按时完成并由阅卷教师在较短时间内做出评判并打出具体分值的作......

    英语单词快速记忆(字根法)

    举几个例子来说吧: 比如单词representative,请别急着告诉我你认识这个单词,其实你不见得“认识”这个单词,你仅是凭着你的记忆力记住了这串英语字母和两个汉字符号“代表”之间......

    品牌快速成长十八法

    多年来,我国企业界和广告界十分推崇国外的品牌理论。无论是当初CI的传入,还是近来整合营销的兴起,都引起了人们的阵阵激动。但是,我们知道,任何一种观点、一种理论能否为我所用,都......

    李和快速识字法教案

    李和快速识字 第二十六课狗熊开店 教学目标: 1、在边唱边读儿歌的过程中认识记忆歌词中的31个汉字。 2、在游戏中巩固汉字,在游戏中提高学生识字的兴趣。 课时安排:2课时 教学......

    归纳概括的三大快速进阶法

    2010年申论备考:归纳概括的三大快速进阶法快速进阶旨在帮助考生提高自己的归纳概括问题的能力。诚然,归纳概括能力作为阅读能力的一部分,考生想在短期内实现质的飞跃是不可能的......

    疯狂英语快速突破法演讲稿(精选合集)

    演讲主题:《口语突破考试,口语和考试共同辉煌,做国际化的中国人》 Hello, everybody,…I am warming to be here . 说一段英文,说thank you very much .然后开始 尊敬的各位领导......

    专利定量分析方法:统计频次排序法

    专利运营与融资孵化请进入:http://www.xiexiebang.com _______________________________________________________________________________ 专利定量分析方法:统计频次排序......