算法
西北笨笨
每天起床的最大动力就是早饭,午饭,晚饭,睡觉!!!
展开
-
Java排序
排序作为一种常见的,在衡量器优缺点时,基本是从三个方面着手的,分别为 时间复杂度:它主要是分析关键字的比较次数和记录的移动次数。空间复杂度:分析排序算法中需要多少辅助内存。稳定性:若两个记录A和B的关键字值相等,但是排序后A,B的先后次序保持不变,则称这种排序算法是稳定的;反之,就是不稳定的。 就现有的排序算法来看,排序大致可分为内部排序和外部排序。如果整个排序过程不需要借原创 2017-10-12 15:32:14 · 243 阅读 · 0 评论 -
排序的Java实现
从头开始寻找,只有找到比自己小的就交换位置: public static void maoPaoSort(int[] array) { for(int i = 0 ;i { for(int j =0;j { if(array[j] > array[j+1])原创 2017-10-12 15:38:00 · 215 阅读 · 0 评论 -
Java排序算法-直接插入排序
基本思想: 直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表。对于给定的一组记录,初始时假定第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插到有序序列中为止 复杂度: 当最好的情况,也就是要排序的表本身就是有序的,此时只有数据比较,没有数原创 2017-10-12 16:07:47 · 707 阅读 · 0 评论 -
Java排序算法-冒泡排序
基本思想: 临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,因此冒泡排序需要n-1趟 复杂度: 当最好的情况,也就是要排序的序列本身就是有序的,需要进行(n-1)次比较,没有数据交换,时间复杂度为O(n). 当最坏的情况,即待排序的表是逆序的情况,此时需要比原创 2017-10-12 16:01:27 · 453 阅读 · 0 评论 -
Java排序算法-直接选择排序
直接选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,它需要经过n-1趟比较。算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。 基本思想 n个记录的文件的直接选择排序可经过原创 2017-10-12 15:53:24 · 264 阅读 · 0 评论