
数据结构学习排序算法篇
we1less
学习
展开
-
[数据结构]选择排序算法和希尔排序算法详解
选择排序算法是经典算法之一,你可以想象你在打牌,每次拿到的一张牌就是待排序的一张,你需要每一次跟之前的牌进行比较,然后将这张牌插入到合适的位置。那么选择排序也是一样,将整个数组看成两个部分,有序部分和无序部分。现在需要将无序部分的数字跟有序部分进行比较,插入到正确的位置下列代码是插入排序的内层循环:while (insertIndex >= 0 && insertVal < arr[insertIndex]) { arr[insertIndex + 1] = arr[原创 2020-05-26 19:07:43 · 462 阅读 · 0 评论 -
[数据结构]冒泡排序算法和选择排序算法详解
冒泡排序是排序算法中比较经典的算法,首先它的时间复杂度为O(n^2),时间复杂度为平方的算法一般就需要两层嵌套循环。首先分析一下这个算法,这个算法主要是每次查看的相邻的两个数据进行大小比较,然后将大的数据向后换,这样一趟下来最大数据的就换到数组的最末尾了。那么由这个思想可以分析到需要两个指针,当然了java里没有指针,那如何进行比较呢?举个例子:假设有这么一个数组:int[] arr = {3,9,-1,10,6}; 那么设当前循环到的下标为n,那么两个数相比较就是if(arr[n]>ar原创 2020-05-21 21:17:09 · 518 阅读 · 0 评论 -
[数据结构]排序算法的时间复杂度
1.排序算法介绍:简单的来讲哈,就是将一组数据按照指定的规则顺序进行排列的过程。常见的排序算法分为内部排序和外部排序:内部排序就是指所有数据在内部存储中进行排序。相对的外部排序就是指因为数据量过大无法全部加载到内部存储时,需要借助外部存储进行排序的算法。常见的排序算法:2.算法的时间复杂度衡量一个算法的执行时间一般有两种方法,统计法、估算法。所谓的统计法就是在程序开到到程序结束记录程序的运行时间,但这种方法存在局限性,因为程序的执行时间一般受计算机的硬件、软件限制。同样的程序在不同计算机原创 2020-05-20 21:54:09 · 1279 阅读 · 0 评论