<div class="article">
<div class="show-content" data-note-content="">
<div class="show-content-free">
快速排序
概述
快速排序算法借鉴的是二叉树前序遍历的思想,最终对数组进行排序。
优点:
对于数据量比较大的数组排序,由于采用的具有二叉树二分的思想,故排序速度比较快
局限
只适用于顺序存储结构的数据排序(数组 ,ArrayList等),不适用于链式的数据结构
算法实现思路
一.将目标数组转化为这样一个数组。数组中的某个位置左边的所有数据都比该位置的数据小,该位置右边的数据都比该位置数据大。
实现思路:
1.取出数组第0个数据
5.将取出的第0个位置的值赋值给循环结束后左右指针停留下的位置
二. 借鉴前序遍历的思路,递归,最终完成排序。
代码实现
   quickSort([] array, start,          (start >=                        key =          left =          right =          direction =            (left <                               ( i = right; i > left; i--                      (array[i] <                         array[left++] =                         right =                         direction = !                                            right =             }                   ( i = left; i < right; i++                      (array[i] >                         array[right--] =                         left =                         direction = !                                            left =           array[left] =         quickSort(array,start,left - 1         quickSort(array,left + 1
     }
结果测试
[] array = []{1,3,4,10,2,5,6,9,7,8 quickSort(array,array.length - 1 ( i = 0; i < array.length; i++ }
结果打印
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
归并排序
概述
归并排序与快速排序相同,同样是借鉴二叉树的思想,时间复杂度O(n),与快速排序一样是大量数据排序的最优方式之一。
思路分析
归并排序是将目标数组分成左右两个数组,左右两个数组必须是有序的,然后对这两个数组合并从而实现排序。对于任意的数组都可以将所有的数据分成若干个数组,每个数组中都只有一个元素,然后两两合并。(因此,归并排序的内存开销会比快速排序多)
代码实现
mergeSort([] array, left, (left >= mid = (left + right) >> 1 mergeSort(array,mid + 1 merge(array,right);
       merge([] array, mid,          leftSize = mid -          rightSize = right - mid + 1         [] leftArray =           [] rightArray =           System.arraycopy(array,leftArray,0         System.arraycopy(array,mid,rightArray,rightSize);                 [] array =  []{1,8         mergeSort(array,array.length - 1          ( i = 0; i < array.length; i++       }
 1
          index=          leftIndex = 0          rightIndex = 0          (leftIndex测试代码
结果打印
2
3
4
5
6
7
8
9
10