随笔分类 -  算法分析

摘要:快速排序不是一种稳定的排序算法 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数 阅读全文
posted @ 2016-11-03 14:39 凯撒大猩猩 阅读(402) 评论(0) 推荐(0)
摘要:方法一:将这N个数的数组,通过简单的冒泡排序法,以递减的顺序将数组排序,然后返回第K个元素。 方法二:先把前K个元素拷贝到数组b,以递减的顺序对其排序,然后,将剩下的元素逐个与数组b比较, 如果小于数组b中的第K个元素则忽略,否则将新元素放到数组b中正确的位置上,同时将数组b中的一个 元素挤出数组。 阅读全文
posted @ 2016-10-12 14:41 凯撒大猩猩 阅读(3241) 评论(0) 推荐(1)
摘要:index为第二大的数在数组中的下标; 在写算法的过程中,验证发现如果去掉第21行~第28行, 当初始化max和second相等且为整个数组最大, 即a[0]和a[1]相等且为数组最大时, 求出的第二大的数值会出错。 由此发现,去掉上述几行后,max和second初始化为相等且数组最大时, 此算法的 阅读全文
posted @ 2016-10-09 16:29 凯撒大猩猩 阅读(413) 评论(0) 推荐(0)