首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

排序算法(1)

2012-12-25 
排序算法(一)package sortpublic class Sort {public static void bubbleSort(int[] numbers){for(int i

排序算法(一)

package sort;public class Sort {public static void bubbleSort(int[] numbers){for(int i = numbers.length -1 ;i>0;i--){for(int j = 0;j<i;j++){if(numbers[j] > numbers[j+1]){swap(numbers, j, j+1);}}}System.out.println("冒泡排序:");for (int number : numbers) {System.out.print(number + " ");}System.out.println();}public static void insertSort(int[] numbers){for(int i = 1;i<numbers.length;i++){if(numbers[i] < numbers[i-1]){int temp = numbers[i];int j = i-1;for(; (j>=0) &&(temp < numbers[j]);j--){numbers[j+1] = numbers[j];}numbers[j+1] = temp;}}System.out.println("插入排序:");for (int number : numbers) {System.out.print(number + " ");}System.out.println();}public static int[] mergeSort(int[] numbers,int start,int end){if(start < end){int mid = (start + end)/2;mergeSort(numbers, start, mid);mergeSort(numbers, mid+1, end);merge(numbers, start, mid, mid+1, end);}return numbers;}public static void selectSort(int[] numbers){int min;int mink;for(int i = 0;i<numbers.length;i++){min = numbers[i];mink = i;for(int j = i;j<numbers.length;j++){if(numbers[j] < min){min = numbers[j];mink = j;}}if(!(min == numbers[i])){numbers[mink] = numbers[i];numbers[i] = min;}}System.out.println("选择排序:");for (int i : numbers) {System.out.print(i + " ");}System.out.println();}private static void merge(int[] numbers,int start1,int end1,int start2,int end2){int i = start1,j = start2;int k = 0;int temp[] = new int[end2-start1+1];while(i <= end1 && j <= end2){if(numbers[i] <= numbers[j]){temp[k++] = numbers[i++];}else{temp[k++] = numbers[j++];}}while(i <= end1){temp[k++] = numbers[i++];}while(j <= end2){temp[k++] = numbers[j++];}for(int m = 0; m < temp.length;m++){numbers[start1 + m] = temp[m];}}private static void swap(int[] numbers,int index1,int index2){int temp = numbers[index1];numbers[index1] = numbers[index2];numbers[index2] = temp;}public static void main(String[] args) {int[] numbers = {456,845,343,421,256,487,487,690,558,455,658,466,677,788,643};int[] result =mergeSort(numbers, 0, numbers.length-1);System.out.println("归并排序:");for (int i : result) {System.out.print(i + " ");}System.out.println();bubbleSort(numbers);selectSort(numbers);insertSort(numbers);}}

热点排行