Java--常用源码--排序算法
2017-06-16 23:16
309 查看
冒泡升序降序
插入升序降序
选择升序降序
插入升序降序
选择升序降序
一、冒泡升序降序
public class BubbleSort { public static void main(String[] args) { int[] array = {10,5,7,12}; System.out.print("排序前;"); printArray(array); bubbleAscSort(array); bubbleDescSort(array); } /** * 冒泡升序排序 * @param array */ public static void bubbleAscSort(int[] array){ int length = array.length; int temp=0; for(int i=0;i<length-1;i++){ for(int j=0;j<length-i-1;j++){ if(array[j+1]<array[j]){ temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } System.out.println(); System.out.print("升序排序后;"); printArray(array); } /** * 冒泡降序排序 * @param array */ public static void bubbleDescSort(int[] array){ int length = array.length; int temp=0; for(int i=0;i<length-1;i++){ for(int j=0;j<length-i-1;j++){ if(array[j+1]>array[j]){ temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } System.out.println(); System.out.print("降序排序后;"); printArray(array); } public static void printArray(int[] array){ int length = array.length; for(int i=0;i<length;i++){ System.out.print(array[i]); if(i!=length-1){ System.out.print(","); } } } }
二、插入升序降序
public class InsertSort { public static void main(String[] args) { int[] array = {2,3,1,8,6}; System.out.print("排序前;"); printArray(array); insertAscSort(array); insertDescSort(array); } /** * 插入升序排序 * @param array */ public static void insertAscSort(int[] array){ int length = array.length; for(int out = 1;out<length;out++){ int temp = array[out]; int in = out; while(in>0 && array[in-1]>temp){ array[in] = array[in-1]; --in; } array[in]=temp; } System.out.println(); System.out.print("升序排序后;"); printArray(array); } /** * 插入降序排序 * @param array */ public static void insertDescSort(int[] array){ int length = array.length; for(int out = 1;out<length;out++){ int temp = array[out]; int in = out; while(in>0 && array[in-1]<temp){ array[in] = array[in-1]; --in; } array[in]=temp; } System.out.println(); System.out.print("升序排序后;"); printArray(array); } public static void printArray(int[] array){ int length = array.length; for(int i=0;i<length;i++){ System.out.print(array[i]); if(i!=length-1){ System.out.print(","); } } } }
三、选择升序降序
public class SelectSort { public static void main(String[] args) { int[] array = {23,10,7,12,5,1}; System.out.print("排序前;"); printArray(array); selectAscSort(array); selectDescSort(array); } /** * 选择升序排序 * @param array */ public static void selectAscSort(int[] array){ int length = array.length; int min = array[0]; int minIdx = 0; for(int i=0;i<length-1;i++){ for(int j=i+1;j<length;j++){ if(array[j]<min){//将比较符号改为>即是降序排序算法 min = array[j]; minIdx = j; } } array[minIdx]= array[i]; array[i] = min; //重置min、minIdx值 min = array[i+1]; minIdx = i+1; } System.out.println(); System.out.print("升序排序后;"); printArray(array); } /** * 选择降序排序 * @param array */ public static void selectDescSort(int[] array){ int length = array.length; int max = array[0]; int maxIdx = 0; for(int i=0;i<length-1;i++){ for(int j=i;j<length;j++){ if(array[j]>max){//将比较符号改为<即是升序排序算法 max = array[j]; maxIdx = j; } } array[maxIdx]= array[i]; array[i] = max; //重置max、maxIdx值 max = array[i+1]; maxIdx = i+1; } System.out.println(); System.out.print("降序排序后;"); printArray(array); } public static void printArray(int[] array){ int length = array.length; for(int i=0;i<length;i++){ System.out.print(array[i]); if(i!=length-1){ System.out.print(","); } } } }
相关文章推荐
- 常用的各种排序算法的JAVA实现
- 常用的各种排序算法的JAVA实现
- 常用排序算法分析与实现(Java版)
- java常用排序算法
- 用Java实现几种常用排序算法(先实现一个org.rut.util.algorithm.SortUtil)
- 常用的各种排序算法的JAVA实现。
- java实现的几个常用排序算法
- Java中的排序算法源码分析
- JAVA的几种常用基本排序算法
- Java程序员从笨鸟到菜鸟之(五十二)细谈Hibernate(三)Hibernate常用API详解及源码分析
- JAVA实现的常用排序算法及对比
- 用Java实现几种常用的排序算法
- java中几种常用的排序算法
- java面试中常用的排序算法
- 常用的各种排序算法的JAVA实现
- 常用的各种排序算法的JAVA实现
- 常用的各种排序算法的JAVA实现
- java中几种常用的排序算法
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- Java程序员从笨鸟到菜鸟之(五十二)细谈Hibernate(三)Hibernate常用API详解及源码分析