几种简单的排序算法(JAVA)
生活随笔
收集整理的這篇文章主要介紹了
几种简单的排序算法(JAVA)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
幾種排序算法(JAVA)
一、代碼
package com.hdwang;import java.util.Arrays;/*** Created by admin on 2017/1/20.*/ public class Sort {/*** 冒泡排序(最小數冒泡)* @param array 數組*/public void bubbleSort(int[] array){for(int i=0;i< array.length-1;i++){ //比多少次for(int j= i+1;j<array.length;j++){ //每次循環,將最小數提前if(array[i]>array[j]){ //小數冒泡int tmp = array[i];array[i] = array[j];array[j] = tmp;}}}}/*** 選擇排序(選擇最小值置前,較冒泡排序空間占用多,速度快(少了交換))* @param array 數組*/public void selectSort(int[] array){for(int i=0;i<array.length-1;i++){int minIndex = i;for(int j=i+1;j<array.length;j++){if(array[j]<array[minIndex]){minIndex = j; //最小值位置 }}//交換最小值與第i位的值if(minIndex != i){int tmp = array[minIndex]; //最小值array[minIndex] = array[i];array[i] = tmp;}}}/*** 插入排序(大數后移,小數插入前面,理論上比選擇排序空間大,速度快)* @param array 數組*/public void insertSort(int[] array){for(int i=1;i< array.length;i++){int tmp = array[i]; //暫存i位的元素,空出來int j = i;for(;j > 0 && tmp < array[j-1]; j--){ //前面的大數移到后面來array[j] = array[j-1];}array[j] = tmp; //tmp插入準確位置 }}/*** 快速排序(理論上比插入排序空間占用大,排序速度更快)* @param array 數組* @param lowIndex 低位索引* @param highIndex 高位索引*/public void quickSort(int[] array,int lowIndex,int highIndex){if(lowIndex >= highIndex){return; //退出遞歸 }int base = array[lowIndex]; //基準數(小的放其左邊,大的放其右邊)int low = lowIndex; //副本int high = highIndex; //副本while(low<high){while(low<high){ //從后面往前找到一個比base小的數,放到前面去(low的位置上去)if(array[high] < base){array[low] = array[high];low++;break;}high--;}while(low<high){ // 從前面往后找到一個大于或等于base的數,放到后面去(high的位置上去)if(array[low] >= base){array[high] = array[low];high--;break;}low++;}}array[low] = base; //low==high 結束 quickSort(array,lowIndex,low-1); //遞歸排序前一段quickSort(array,low+1,highIndex); //遞歸排序后一段 }public static void main(String[] args) {int[] array = {2,3,1,6,9,5,4,2};System.out.println(Arrays.toString(array));Sort sort = new Sort(); // sort.bubbleSort(array); // sort.selectSort(array); // sort.insertSort(array);sort.quickSort(array,0,array.length-1);System.out.println(Arrays.toString(array));} }?二、輸出結果
[2, 3, 1, 6, 9, 5, 4, 2]
[1, 2, 2, 3, 4, 5, 6, 9]
轉載于:https://www.cnblogs.com/hdwang/p/6323490.html
總結
以上是生活随笔為你收集整理的几种简单的排序算法(JAVA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis与Hibernate比较
- 下一篇: PHP复习-第一天