随笔分类 -  算法入门

imooc课程,我是代码的搬运工。
对比生成测试算法用例
摘要:在对两个算法进行比较时,通常需要两个或多个算法对同一个数组进行排序,所以需要先对数组进行复制 使用copy函数进行数组复制 有些算法对无序数组和接近有序数组的排序性能差异较大,所以需要定义一个生成基本有序数组的函数 函数参数两个,一个是数组长度,一个是无序数对数 首先通过循环复制生成一个有序数组,然 阅读全文

posted @ 2017-02-10 18:17 京城妖 阅读(292) 评论(0) 推荐(0)

简单的排序算法:冒泡排序法
摘要:算法原理:通过不断对比相邻两个元素之间的大小关系,将大的元素向后移动 时间复杂度:O(n^2) c++实现对整形数组排序 或者,因为每次循环可以得到当前循环最大的元素并放在数组最后,所以可以通过将最后一次交换的位置赋值给数组长度,获得下次循环的限定条件 经过简化,将newn赋值简化为n-- 三种排序 阅读全文

posted @ 2017-02-10 17:56 京城妖 阅读(299) 评论(0) 推荐(0)

简单的排序算法:插入排序法
摘要:算法原理:依次对比每个位置上的元素与之前元素的大小,并进行交换,直道之前元素不大于目标元素 算法复杂度:O(n^2) c++实现整形数组排序 每次swap经过了三次赋值运算,可通过改写语句优化算法,建立一个临时变量存储当前元素数据,用一次赋值运算代替swap函数。 将第二层循环内的判断语句加入到了f 阅读全文

posted @ 2017-02-10 09:06 京城妖 阅读(610) 评论(0) 推荐(0)

随机生成算法测试用例
摘要:测试算法时,经常使用随机数,针对排序算法测试,建立一个名字空间SortTestHelper 生成随机数组时,三个参数分别为元素个数,元素下限和元素上限。 在这个函数中,默认rangR>rangeL,所以在函数中使用了assert(rangeR>rangeL),如果括号内成立,则继续运行,不成立则打断 阅读全文

posted @ 2017-02-08 18:31 京城妖 阅读(2385) 评论(0) 推荐(0)

简单的排序算法:选择排序法
摘要:目标:将元素从小到大排列 算法原理:遍历所有元素,选择最小的元素与第一个元素交换位置,遍历剩余元素,选择最小的元素与第二个元素交换位置,循环直道最后一个元素。 时间复杂度:O(n^2) c++实现整形数组选择排序 在第一层循环内定义了辅助变量minIndex,赋值为i。swap()为交换函数,包含在 阅读全文

posted @ 2017-02-08 09:46 京城妖 阅读(417) 评论(0) 推荐(0)

导航