随笔分类 -  算法

v+=e 不等价于 v=v+e
摘要:在大多数情况下 v+=e 等价于 v=v+e; 这里的等价含义为当c不是表达式时他们的运行结果一致(但是运行次数永远不一致)。 v+=e 只运行了一次运算 v=v+e运行了两次运算。 int a[]={1,2,3,4,5},i=0; a[i++]=a[i++]+2; //此时数组为{1,3,3,4, 阅读全文
posted @ 2020-11-24 11:59 Vinlen 阅读(333) 评论(0) 推荐(0)
快速排序算法
摘要:快速排序快速排序是对冒泡排序的一种改进,实现的途径为在数组中取一个数为基数。基数的左边为比基数小的值,基数的右边是比基数大的值左边的值又可以取基数继续排序 一直到被分成只有一个值的时候 这时已经为有序排序按下面的例子来说 有一个数组{1,5,2,6,7,3,4,8,9}会随机选择一个数字作为基数 标 阅读全文
posted @ 2020-05-15 17:35 Vinlen 阅读(362) 评论(0) 推荐(0)
归并排序算法
摘要:归并排序,也就是将一个数组无限次的对半拆分 一直拆分数量为1的时候 将两个数量为1的数组比较大小合并为有序的,再依次往上合并如果班上有10个小学生{1, 5, 2, 6, 7, 3, 4, 8,9,10} 先将小学生分成2组,A组{1,5,2,6,7}和B组{3,4,8,9,10}再将A组拆分为两组 阅读全文
posted @ 2020-05-15 17:28 Vinlen 阅读(166) 评论(0) 推荐(0)
希尔排序算法
摘要:希尔排序就是对插入排序的一种优化希尔排序将固定的数组分组,每个小组进行插入排序,每个小组插入排序之后继续分组直到最后是一个1个整体,因为每次插入排序都会式数组固定有序可以大大优化最后的时间举个例子 现在有10个小学生{1, 5, 2, 6, 7, 3, 4, 8,9,10}先将小学生分为arr.le 阅读全文
posted @ 2020-05-15 17:27 Vinlen 阅读(191) 评论(0) 推荐(0)
插入排序算法
摘要:插入排序:从元素的第二个值开始 假设第一个值是排序完成的队列,每次向排序好的队列中插入值得时候都由后往前,直到找到自己应该在得位置 public static void compare2(int[] arr) { for (int i = 1; i < arr.length; i++) { int 阅读全文
posted @ 2020-05-15 17:24 Vinlen 阅读(131) 评论(0) 推荐(0)
选择排序算法
摘要:选择排序是冒泡排序的一种改进,相比于之前的衡量尺,选择排序获取的不是符合衡量尺的元素的值 而是元素,相比于冒泡排序,冒出一个数只需要交换一次数值 public static void comnpare1(int[] arr) { for (int i = 0; i < arr.length; i++ 阅读全文
posted @ 2020-05-15 17:17 Vinlen 阅读(142) 评论(0) 推荐(0)
冒泡排序算法
摘要:冒泡排序算法就是遍历数组,取出一个衡量尺,拿这个衡量尺和其他的所有数据比较,如果其他数的值比衡量尺大(小) 则更换两个数的值,并更换衡量尺,总而言之,衡量尺一定是目前遍历到的元素中最大(小)的值 因为元素都是在每一次遍历之后一次一次的冒出来,所以该算法叫冒泡算法 代码: public static 阅读全文
posted @ 2020-05-15 17:14 Vinlen 阅读(113) 评论(0) 推荐(0)