算法
JasonZhou89
to be a better man
展开
-
算法和数据结构(三)--常用算法之选择排序法
选择排序法 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空。 ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。 …… ③第i趟排序 第i趟排序开始时,当前有序区和...原创 2018-08-08 18:39:45 · 188 阅读 · 0 评论 -
算法和数据结构(四)--常用算法之快排法
快排法(时间复杂度 选择基准数,(一般选需要排序数组的第一个元素array[0]) 从右往左找到第一个小于该基准数的值array[j] 从左往右找到第一个大于该基准值的值array[i] 交换i、j位置的数值 重复步骤2-4,直到i==j 此时i==j,交换基准点和位置i的数值,完成对第一个基准点的归位 此时该基准点在位置i处,对位置i左右分别重复1-6步进行快排操作 /* c */...原创 2018-08-08 18:40:10 · 994 阅读 · 0 评论 -
算法和数据结构(二)--常用算法之冒泡法
冒泡法(时间复杂度) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 /* c */ void bubbleSort(int array[], int arra...原创 2018-08-08 18:39:22 · 172 阅读 · 0 评论 -
算法和数据结构(一)--算法复杂度
算法复杂度:主要体现在运行该算法时 所需要的计算机资源,计算机资源最重要的是时间和内存,也因此可以将算法复杂度分为时间复杂度和空间复杂度。 时间复杂度:代表运行算法所需要的计算量。(“整个算法的执行时间与基本操作重复执行的次数成正比。”) 空间复杂度:代表运行算法所需要的内存空间。 时间复杂度: 假设算法中基本操作重复次数是问题规模n的某个函数, 用T(n)表示;若存在某个辅...原创 2018-08-08 18:38:41 · 1440 阅读 · 0 评论