算法
文章平均质量分 70
wj1312
这个作者很懒,什么都没留下…
展开
-
Java的选择排序
选择排序:选择排序主要思想是先选取序列中的最大值,放在序列首位,再选取除去序列首位的序列中的最大值,放在第二位,以此类推实现排序。下面举一个从大到小排序的例子:(红色的表示已经排好序的,蓝色的表示此次排序所交换的数字)如1,5,2,8,1,9,2,4第一趟排序后结果: 9,5,2,8,1,1,2,4第二趟排序后结果: 9,8,2,5,1,1,2,4第三趟排序后结果: 9,8原创 2017-08-20 15:54:30 · 200 阅读 · 0 评论 -
Java的插入排序
插入排序: 插入排序主要思想是将序列中的新元素插入到已经排好序的序列中,通过比较新元素和已排好序列中的元素大小,将新元素插入到合适的位置即为插入排序下面举一个由小到大排序的例子:如: 1,7,3,9,4,6,9第一次发生位置交换排序结果: 1,3,7,9,4,6,9(数字3插入后引起变化)第二次发生位置交换排序结果: 1,3,7,4,9,6,9(数字4插入后引起变化)第三次发生位置交换排序结果:原创 2017-08-20 15:26:51 · 152 阅读 · 0 评论 -
Java的快速排序
快速排序快速排序的主要思想分为三步: 步骤一,在数组中取出一个数当作基准,一般情况下可以取数组中第一个数 步骤二,讲这个数组中的其他数字以基准数为标准按照与基准值的大小差别放在数组的左侧和右侧,分为以基准值为中心的两个小数组 步骤三,重复步骤二直到所有的小数组排序完毕。程序思想:不断地将基准值与数组中的其他数字比较,进行有序交换,实现数组的分割,其中有序原创 2017-08-22 14:14:54 · 185 阅读 · 0 评论 -
Java的堆排序
堆排序堆排序的主要思想,利用大根堆或小根堆的数据结构,从中不断地提取最大或最小值,进行排序的一种算法。程序思想:将无序数组进行建堆,提取堆顶值,与数组末尾的数字进行调换。对调换后的排除最后一位数字的数组重新建堆。重复这个过程,直到所有数字提取完毕,即可实现排序。如:1,0,8,5,4,2heapKeep8,5,2,0,4,1, heapKeep5,4,2,0,1,8, he原创 2017-08-22 15:28:42 · 185 阅读 · 0 评论 -
Java的归并排序
归并排序归并排序的主要思想:归并排序采用的是分治法。分治法是将一个大问题拆分成数个相同的小问题,通过解决每个小问题,最后解决大问题的一种算法。在归并排序中,大问题是求解较长数组排序问题,小问题可以设为小数组排序问题,当这个小数组足够小时,解决这个小问题很轻而易举,如两个数排序。最后将答案合并,变为初始问题的解。程序思想:将数组不断二分拆分,直到不可拆分为止。然后进行有序数列合并,在合并的过原创 2017-08-23 15:33:42 · 174 阅读 · 0 评论 -
Java的冒泡排序
冒泡排序:冒泡排序的主要思想是相邻的两个数进行比较,大的数字放在后面,小的数字放在前面,这样每进行一次交换必然会导致大的数字越来越靠后,一趟排序后会让最大的数字排到最后,接下来是次大的数字,有点像水泡在水中上浮一样越靠近水平面的数字越大。原创 2017-08-20 16:33:22 · 288 阅读 · 0 评论