Java中各种排序算法
摘要:Java冒泡,选择,快速,插入多种排序算法
一、冒泡排序
java代码
public class BubbleSort{ public static void main(String[] args){ int score[] = {67, 69, 75, 87, 89, 90, 99, 100}; for (int i = 0; i < score.length -1; i++){ //最多做n-1趟排序 for(int j = 0 ;j < score.length - i - 1; j++){ //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的) if(score[j] < score[j + 1]){ //把小的值交换到后面 int temp = score[j]; score[j] = score[j + 1]; score[j + 1] = temp; } } System.out.print("第" + (i + 1) + "次排序结果:"); for(int a = 0; a < score.length; a++){ System.out.print(score[a] + "\t"); } System.out.println(""); } System.out.print("最终排序结果:"); for(int a = 0; a < score.length; a++){ System.out.print(score[a] + "\t"); } } }
二、选择排序
java代码
float[] scores = {0.0f,2.0f,3.0f,1.0f}; //定义临时变量 float temp = 0.0f; //找到最小值索引 int min; for(int i=0;i < scores.length - 1;i++){ min = i; for(int j = i + 1;j < scores.length;j++){ if(scores[j] < scores[min]){ min = j; } } if(min != i){ temp = scores[min]; scores[min] = scores[i]; scores[i] = temp; } }
三、快速排序
java代码
public int getMiddle(Integer[] list, int low, int high) { int tmp = list[low]; //数组的第一个作为中轴 while (low < high) { while (low < high && list[high] > tmp) { high--; } list[low] = list[high]; //比中轴小的记录移到低端 while (low < high && list[low] < tmp) { low++; } list[high] = list[low]; //比中轴大的记录移到高端 } list[low] = tmp; //中轴记录到尾 return low; //返回中轴的位置 }
四、插入排序
java代码
package com.cn.sort; public class InsertSort { public void insertSort(int[] array, int first, int last) { int temp, i, j; for (i = first + 1; i <= last - 1; i++) {// 默认以第一个数为有序序列,后面的数为要插入的数。 temp = array[i]; j = i - 1; while (j >= first && array[j] > temp) {// 从后进行搜索如果搜索到的数小于temp则该数后移继续搜索,直到搜索到小于或等于temp的数即可 array[j + 1] = array[j]; j--; } array[j + 1] = temp; // 打印每次排序结果 for (int m = 0; m <= array.length - 1; m++) { System.out.print(array[m] + "\t"); } System.out.println(); } } public static void main(String[] args) { InsertSort insertSort = new InsertSort(); int[] array = { 5, 69, 12, 3, 56, 789, 2, 5648, 23 }; insertSort.insertSort(array, 0, array.length);// 注意此处是0-9而不是0-8 for (int i = 0; i <= array.length - 1; i++) { System.out.print(array[i] + "\t"); } } }
相关文章
最新发布
阅读排行
热门文章
猜你喜欢