java简单实现冒泡、快速、选择、插入排序算法
2016-10-12 21:38
453 查看
程序主要实现了冒泡排序、快速排序、选择排序、插入排序算法
数据类Data.java
排序算法类SortMethods.java
主类Main.java
示例程序:
数据类Data.java
排序算法类SortMethods.java
主类Main.java
数据类Data.java
排序算法类SortMethods.java
主类Main.java
示例程序:
数据类Data.java
package callclasstestoop; public class Data { public int[] dataArray(){ int[] data = new int[]{2, 1, 6,88,43,21,90,31,5,18}; return data; } }
排序算法类SortMethods.java
package callclasstestoop; /** * 排序tool类 * @author gt.liu * time 2016年10月12日 上午10:17:48 * TestJava callclasstestoop SortMethods.java */ public class SortMethods { public SortMethods() { // TODO Auto-generated constructor stub System.out.println("==调用SortMethods类,这是构造方法=="); System.out.println("=========调用排序算法类后========"); } // 排序算法实现 // 冒泡排序算法 public void maoPaoSort(int[] array) { System.out.println("**********冒泡排序算法*********"); System.out.println("public void maoPaoSort(int[] array){...}"); int temp; for (int i = 0; i < array.length - 1; i++) { for (int j = i + 1; j < array.length; j++) { if (array[i] > array[j]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } //快速排序算法***使用分治策略把一个序列分为两个序列 public void kuaiSuSort(int[] array, int start, int end) { //System.out.println("==========快速排序算法=========");//由于递归调用注掉 if (start < end) { int base = array[start];// 选定基准值(第一个值作为基准值) //int temp;// 交换临时值 int i = start; int j = end; while(i < j){ while(i<j && array[j] > base){ j--; } if(i<j){ array[i] = array[j]; i++; } while(i<j && array[i] < base){ i++; } if(i<j){ array[j]=array[i]; j--; } array[i] = base; } kuaiSuSort(array, start, i - 1); kuaiSuSort(array, i + 1, end); } }//kuaiSuSort(){...} over //选择排序算法***每次寻找最小(大)的值放在最末尾的位置 public void xuanZeSort(int[] array){ System.out.println("**********选择排序算法**********"); int temp; for(int i = 0; i < array.length; i++){ int flag = i; for(int j = i+1; j < array.length; j++){ if(array[flag] > array[j]){ flag = j; } } temp = array[i]; array[i] = array[flag]; array[flag] = temp; } }//xuanZeSort(){...} over //插入排序算法 public void chaRuSort(int[] array){ System.out.println("**********插入排序算法**********"); int temp; int j; for(int i = 1; i < array.length; i++){ temp = array[i]; for(j = i; j > 0 && temp < array[j-1]; j--){ array[j] = array[j-1]; } array[j] = temp; } } }
主类Main.java
package callclasstestoop; /** * 主类Main * @author gt.liu * time 2016年10月12日 上午10:17:26 * TestJava callclasstestoop Main.java */ public class Main { public static void main(String[] args) { //数据载入 Data array = new Data();//Data类 int[] arrayData = array.dataArray(); //数据输出测试 System.out.println("数组长度:" + arrayData.length); System.out.println("==========原始数组============"); for(int i = 0; i < arrayData.length; i++){ System.out.print(arrayData[i] + "\t"); } System.out.println("\n==========================="); //排序算法类载入 SortMethods sort = new SortMethods();//SortMethods类 //sort.maoPaoSort(arrayData);//调用sort中的冒泡排序算法 //调用sort中的快速排序算法 //System.out.println("**********快速排序算法**********"); //sort.kuaiSuSort(arrayData, 0, arrayData.length-1); //sort.xuanZeSort(arrayData);//调用sort中的选择排序算法 sort.chaRuSort(arrayData);//调用sort中的插入排序算法 //输出排序结果 System.out.println("==========排序后数据==========="); for(int i = 0; i < arrayData.length; i++){ System.out.print(arrayData[i] + "\t"); } System.out.println("\n==========================="); } }
相关文章推荐
- Java实现冒泡,快速,选择,插入排序算法
- 001-简单的java代码实现几种排序算法(插入,快速,冒泡,选择)
- java简单实现冒泡 快速 选择排序
- 《冒泡,选择,插入,归并,希尔,快速》排序算法java实现一览
- 三种常用排序算法(冒泡、选择、快速)的Java实现
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 排序算法复习(Java实现): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 简单选择、冒泡、插入排序思想及Java实现代码
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(二): 插入,冒泡,选择,Shell,快速排序
- 基础排序算法,java实现(快速,冒泡,选择,堆排序,插入)
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- java实现七种排序 (插入排序, 希尔排序, 插入排序, 快速排序, 简单选择排序, 堆排序, 归并排序)
- 冒泡、快速、直接插入、选择排序算法(Java语言实现)
- c#实现冒泡、快速、选择和插入排序算法
- 常见内部排序算法 简单数组实现与分析(快速(偶原创partition函数,望众高手指正)、归并、希尔、插入、选择、冒泡)
- java实现的冒泡、选择、快速排序
- 排序算法复习(Java实现):插入,冒泡,选择,Shell,快速排序, 归并排序,堆排序,桶式排序,基数排序
- Java中实现简单的三大排序——冒泡、选择、插入