on(int[] arr,int low,int high){ int pivot=arr[low]; while(low<high){ while((low<high)&&arr[high]>=pivot) high--; arr[low]=arr[high];//将比基准小的移动到左侧 while((low<high)&&arr[low]<=pivot) low++; arr[high]=arr[low];//将比基准大的移动到右端 } arr[low]=pivot; return low; } /** * * @Description: 简单选择排序 (这里用一句话描述这个类的作用) * @author 陈杰 * @date 2016年10月8日 下午8:16:21 * @param arr */ public void selectSort(int arr[]){ for(int i=0;i<arr.length-1;i++){ int min=i;//记录本次待排序最小元素的位置 for(int j=i+1;j<arr.length;j++){ if(arr[min]>arr[j]) min=j; } //将未排序列表中的最小元素和待排序元素的位置互换 if(min!=i){ int temp=arr[i]; arr[i]=arr[min]; arr[min]=temp; } } //打印排序后结果 for (int value : arr) { System.out.print(value + " "); } } /** * * @Description: 堆排序算法 (这里用一句话描述这个类的作用) * @author 陈杰 * @date 2016年10月9日 下午5:40:56 * @param arr */ public void heapSort(int arr[]){ if(arr==null||arr.length<=0) return; bulidHeap(arr); for(int i=arr.length-1;i>=0;i--){ //交换堆顶元素和堆低元素的值,以打破堆让其重新调整,从而每次输出最大值(堆顶的值),直至堆为空 int temp=arr[0];//堆顶元素 arr[0]=arr[i]; arr[i]=temp; adjustHeap(arr, 0, i); } //打印排序后结果 for (int value : arr) { System.out.print(value + " "); } } /** * * @Description:构建初始堆(以大根堆为例) * @author 陈杰 * @date 2016年10月9日 下午5:43:02 * @param arr */ private void bulidHeap(int arr[]){ &nb |