摘要:
冒泡排序,就是每次遍历都会把最小(或者最大)的数放在前面。比如要升序{A1,........An} 第一次排序要取出整个数组中最小放在A1的位置,从An开始往前遍历,相邻两个数比较,如果Aj num; num1--){ if(arrays[num1] < arrays[num1-1]){ int temp = arrays[num1]; arrays[num1] = arrays[num1-1]; arrays[num1-1] = temp; ... 阅读全文
摘要:
上篇blog中介绍的直接插入排序,希尔排序就是对直接插入排序的一个优化。比如有这么一种情况:对一个无序数组进行从小到大的排序,但是数组的最后一个位置的数是最小的,我们要把它挪到第一个位置,其他位置的都要往后移动,要是这个数组非常大,那么直接插入排序的开销就非常大。 现在有一个array,希尔排序就是设定一个增量incrementNum(0=1){ for(int i=0;iarrays[j+incrementNum]){ int temple = arrays[j]; arr... 阅读全文
摘要:
这几天看排序算法,网上大多数排序算法的解释都是“过于专业”,导致一时半会看不明白到底在说什么玩意。现在总结下几大排序算法(java实现)1.直接插入排序说的简单点,就是一组无序序列{A1,A2,........An} 先取出A1,然后从A2与A1比较,比较完之后序列状况是{A1,A2}{A3..........An}, 其中{A1,A2}有序, 然后取出A3 ,放到{A1,A2}有序序列合适位置,导致{A1,A2,A3}{A4........An}。重复这个过程,直到取出An放入{A1,A2........An-1}有序序列中。java实现代码如下(利用LinkedList作为辅助序列) .. 阅读全文