java 的各种排序算法
编程技术  /  houtizong 发布于 3年前   65
package dasf;public class Sort {/** 创建一新数组 */private static int[] numArray = { 5, 12, 2, 63, 22, 6, 54, 42 };/** 计算新数组的长度 */private static int count = numArray.length;/** * 构造方法 */protected Sort() {}/** * 程序的唯一入口 main 方法 * * @param args */public static void main1(String[] args) {BubbleSort(numArray);/** 输出 */for (int i = 0; i < count; i++) {System.out.print(numArray[i] + "\t");}}/** * 选择 */public static void SelectSort(int[] array) { for (int i = 0; i < array.length; i++) { // 最大值得位置 int max = i; for (int j = i+1; j < array.length; j++) { if(array[max] < array[j]){ max = j; } } swap(array,i,max); } }/** * 插入法排序 */ public static void InsertSort(int[] array) { for (int i = 1; i < array.length; i++) { int tmp = array[i]; int j = i; while (j > 0 && array[j - 1] < tmp) { array[j] = array[j - 1]; --j; } array[j] = tmp; } } /** * 冒泡法排序 */ public static void BubbleSort(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;}}}} /** * 交换数组中i和j的位置 */ private static void swap(int[] array, int i, int j) { int tmp = array[i]; array[i] = array[j]; array[j] = tmp; } /** * @param pData 需要排序的数组 * @param left 左边的位置,初始值为0 * @param right 右边的位置,初始值为数组长度 */ public static void QuickSort(int[] pData,int left,int right) { int i,j; int first,temp; i = left; j = right; first = pData[left]; //这里选其他的数也行,不过一般选第一个 //一趟快速排序 while(true) { //从第二个数开始找大于中枢的数 ,从前面开始找大于pData[left]的数 while((++i)<right-1 && pData[i]<first); //从最后一个数开始找第一个小于中枢pData[left]的数 while((--j)>left && pData[j]>first); if(i>=j) break; //交换两边找到的数 temp = pData[i]; pData[i] = pData[j]; pData[j] = temp; } //交换中枢 pData[left] = pData[j]; pData[j] = first; //递归快排中枢左边的数据 if(left<j) QuickSort(pData,left,j); //递归快排中枢右边的数据 if(right>i) QuickSort(pData,i,right); } public static void main(String[] args){ int [] pData = new int[5]; for(int i = 0; i< 5; i++) pData[i] = (int)(Math.random()*100);//Produce 10 random integers for(int i = 0; i<pData.length; i++){ System.out.print(pData[i]+" "); } QuickSort(pData, 0, pData.length); System.out.println("\n***********************"); for(int i = 0; i<pData.length; i++){ System.out.print(pData[i]+" "); } }}
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接