随笔分类 - 【算法与数据结构】
摘要:网上看到的5个问题,下面是解答,不知道有没有其他建议!问题1使用for循环、while循环和递归写出3个函数来计算给定数列的总和。package com.luka;public class Javat { private static int[] arr_Ints = { 2, 1, 4, 3...
阅读全文
摘要:快速排序相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数放到基准点的右边。这样每次交换的时候就不会像冒泡排序一样只能在相邻的数之间进行交换,交换的距离就大得多了。因此总的比较和交换次数就少了,速度自然就提高了。当在最坏的情...
阅读全文
摘要:冒泡排序可以很好的解决前面提到的简单桶排序的2个问题,冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。该算法的核心部分是双重嵌套循环,其时间复杂度是O(N²)。缺点:在算法的执行效率上牺牲很多。假如我们的计算机每秒可以运行10亿次,那么对1亿个数进行排序,桶排序只需...
阅读全文
摘要:该算法的时间复杂度是O(M+N),M为桶的个数,N为待排序的个数缺点:1.不适用于小数2.当数值过多,太浪费空间,比如数值范围为0~99999,那需申请100000个变量,也就是要写成a[1000000]。代码如下:using System;using System.Collections.Gene...
阅读全文