郑州尚学堂:JAVA常用4种排序方法
JAVA中在運用數(shù)組進(jìn)行排序功能時,一般有四種方法:快速排序法、冒泡法、選擇排序法、插入排序法。
當(dāng)然 程序中最簡單的使用就是:快速排序和冒泡排序,插入排序的使用更具有技巧性,選擇排序則過于復(fù)雜,冗雜的代碼不利于程序的使用和軟件的測試。
快速排序法主要是運用了Arrays中的一個方法Arrays.sort()實現(xiàn)。
冒泡法是運用遍歷數(shù)組進(jìn)行比較,通過不斷的比較將最小值或者最大值一個一個的遍歷出來。
選擇排序法是將數(shù)組的第一個數(shù)據(jù)作為最大或者最小的值,然后通過比較循環(huán),輸出有序的數(shù)組。
插入排序是選擇一個數(shù)組中的數(shù)據(jù),通過不斷的插入比較最后進(jìn)行排序。下面我就將他們的實現(xiàn)方法一一詳解供大家參考。
?
第一
利用Arrays帶有的排序方法快速排序
?
?import?java.util.Arrays;????public?class?Test{??????????public?static?void?main(String[]?args){????int[]?a={5,4,2,4,9,1};????????????????Arrays.sort(a);??//進(jìn)行排序????for(int?i:?a){?????System.out.print(i);???}???????}???}?
第二
冒泡排序算法
?
?public?static?int[]?bubbleSort(int[]?args){?? //冒泡排序算法????for(int?i=0;i<args.length-1;i++){???????????????for(int?j=i+1;jargs[j]){?????int?temp=args[i];????args[i]=args[j];????args[j]=temp;????}????}???}????return?args;???}?
第三
選擇排序算法
?
?public?static?int[]?selectSort(int[]?args){??//選擇排序算法????for?(int?i=0;i<args.length-1?i++?){????int?min=i;?????????????for?(int?j=i+1;jargs[j]){????min=j;????}????}????if?(min!=i){???int?temp=args[i];??args[i]=args[min];????args[min]=temp;?????????}???}????return?args;????? }?
第四
插入排序算法
?
?public?static?int[]?insertSort(int[]?args){//??for(int?i=1;i0;j--){?????????????????if?(args[j]<args[j-1]){?????int?temp=args[j-1];??args[j-1]=args[j];??args[j]=temp;????????}??else?break;????}???}????????????????????return?args;??? }以上就是java中的四種排序方法。
不同的方法效率不一樣,下面是不同的算法的比較和數(shù)據(jù)交換時的大O表示。
冒泡排序:比較O(N2) 數(shù)據(jù)交換O(N2)
選擇排序:比較O(N2) 數(shù)據(jù)交換O(N)
插入排序:比較O(N2) 復(fù)制數(shù)據(jù)O(N)
在實際應(yīng)用中,我們要盡量選擇效率高的算法。
轉(zhuǎn)載于:https://blog.51cto.com/12737896/1909606
總結(jié)
以上是生活随笔為你收集整理的郑州尚学堂:JAVA常用4种排序方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA学习笔记--初始化与清理
- 下一篇: SQL 基础之用户角色日常操作(十六)