日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【知了堂学习笔记】java 编写几种常见排序算法3

發布時間:2024/6/30 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【知了堂学习笔记】java 编写几种常见排序算法3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

排序的分類:

1.希爾排序

希爾排序是快速插入排序的改進版,希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序算法排序;隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至1時,整個文件恰被分成一組,算法便終止

基本思路:先取一個小于n的整數d1作為第一個增量,把文件的全部記錄分組。所有距離為d1的倍數的記錄放在同一個組中。先在各組內進行直接插入排序;然后,取第二個增量d2<d1重復上述的分組和排序,直至所取的增量?=1(?<?…<d2<d1),即所有記錄放在同一組中進行直接插入排序為止,一般是選取d1為數組的一半,d2為d1的一半以此類推..

具體代碼:

package Sort;public class Shell_sort {public static void main(String[] args) {// TODO Auto-generated method stubint[] a = {78,68,48,39,95,48,94,73};//希爾排序int d=a.length;while(d>1){d=d/2;for(int x=0;x<d;x++){//以d為公差分組,分成d個數組,每個數組為{a[i+d],a[i+2d],a[i+3d]....}for(int i=x+d;i<a.length;i=i+d){//按直接插入排序將這些數組排序(具體方法查看我的直接插入排序http://www.cnblogs.com/pipixiao/p/7674142.html)int temp=a[i];int j;for(j=i-d;j>=0&&a[j]>temp;j=j-d){a[j+d]=a[j];}a[j+d]=temp;}}}System.out.println("排序之后:");for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");} } }

運行結果:

?

2.堆排序

大根堆排序,小根堆排序。

大根堆排序:先構建二叉樹(構建的二叉樹必須滿足父節點必須大于其左右子節點,數組中第一個數字為a【0】其左右子節點的應為a【1】,a【2】,以腳標定義既是父節點為a【i】,其左右子節點分別為a【2i+1】,a【2i+2】),再將二叉樹中第一個數獲取放入另外一個空數組中,剩下的數重新形成一個新的數組,再重新建堆,重復上述步驟,直到原數組中數字被取完,得到的新數組,既是一個由大到小排序完成的數組

由此二叉樹可知2是5,6的父節點,將2,5,6三個位置的數比較大小,得到最大的數與2位置的交換,當得到的數就是2本身,不做交換,(1,3,4),(0,1,2)位置的數也應該做同樣的步驟,這樣最終0位置獲得的數既是最大的數,然后將得到的數組中a【0】拿出,后面的數構建新數組,重新再構建樹。重復上述步驟

注意:這里可以看出構建數循環的次數為3次即:for(int i=(a.lenght-1)/2-1,i>=0,i--);但是當出現下面這種情況時很顯然這個條件不滿足,下面循環的次數為4次,我們可以不改變上述循環的原理上面加一點既:for(int i=(a.lenght-1)/2-1+(a.lenght-1)%2;i>=0;i--)其實對比不難看出當數組的長度為偶數的時候,得到的二叉樹最后悔單出來一個位置,這里面比較的條件就會發生變化,而(a.lenght-1)%2可以得到長度為偶數則加一次循環,為奇數時不變。

構建的數是這種情況的時候(3,7)位置的數比較的時候只有兩個數比較,所以這里出現了一個不同,就應該加一個判斷條件(本次比較是否存在a【2i+2】這一項,如果不存在則比較的數只有a【i】與a【2i+1】)

具體代碼:

?

package Sort;import java.util.Arrays;public class HeapSort {public static void main(String[] args) {// TODO Auto-generated method stubint[] arr = {78,68,48,39,95,48,94,73};int[] a = new int[8];for(int i=0;i<a.length;i++){heap(arr);a[i]=arr[0];//將當前數組第一個數獲取給數組aarr=Arrays.copyOfRange(arr,1,arr.length);//截取取arr數組的第一個數后面的所有數,重新給arr }for (int m = 0; m < a.length; m++) {//遍歷輸出數組a,數組a既是排序完成后的數組System.out.print(a[m]+" ");}}public static void heap(int[] arr){//創建堆int temp=0;for(int j=(arr.length-1)/2-1+(arr.length-1)%2;j>=0;j--){//獲取每次創建堆的循環條件if(2*j+2<=arr.length-1){//判斷當前a[2*j+2]是否存在,存在則執行a[j]、a[2*j+1]、a[2*j+2]比較,不存在則執行a[j]、a[2*j+1]比較temp=arr[j]>arr[2*j+1]?(arr[j]>arr[2*j+2]?j:2*j+2):(arr[2*j+1]>arr[2*j+2]?2*j+1:2*j+2);//比較獲得最大數的腳標}else{temp=arr[j]>arr[2*j+1]?j:2*j+1; }if(arr[j]==arr[temp]){//如果最大的數就是a[j]本身則退出進行下一次比較continue;}else{//最大數不是a[j]則最大數與a[j]交換位置arr[j]=arr[j]^arr[temp];arr[temp]=arr[j]^arr[temp];arr[j]=arr[j]^arr[temp];}}}}

?運行結果:

?

?

轉載于:https://www.cnblogs.com/pipixiao/p/7687930.html

總結

以上是生活随笔為你收集整理的【知了堂学习笔记】java 编写几种常见排序算法3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 床戏高潮做进去大尺度视频网站 | 三级全黄做爰龚玥菲在线 | 中国国语农村大片 | 天天摸天天看 | 国产一区二区三区视频免费观看 | 视频一区二区免费 | 国产网友自拍 | 99re99热| 一区二区三区视频免费在线观看 | 国产一区二区视频免费 | 成人黄色在线免费观看 | 国产一区二区三区电影在线观看 | 亚洲一区 中文字幕 | 国产色宗合 | 视频在线观看电影完整版高清免费 | 日日操日日射 | 茄子av | 水牛影视av一区二区免费 | 精品毛片 | 一线毛片 | 欧美高清一区二区 | 欧美日韩黑人 | 久久久国产精品一区二区三区 | 国产一二三区在线视频 | 亚洲福利视频一区二区三区 | 极品美女扒开粉嫩小泬 | r级无码视频在线观看 | 自拍偷拍精品 | 日韩网| 天堂欧美城网站 | 色综合av| 超碰男人的天堂 | 免费看女生裸体视频 | 亚洲乱码电影 | 性插动态视频 | 久久国产柳州莫菁门 | 激情欧美亚洲 | 欧美久久天堂 | 日韩中文字幕2019 | 欧美一区二区不卡视频 | 久久久激情视频 | 神马久久久久久久久久久 | 日本丰满熟妇videossex一 | 男女午夜免费视频 | 亚洲美女综合 | 成人免费观看网站 | 免费观看美女裸体网站 | 中文在线免费 | 加勒比在线一区 | 日韩诱惑 | 精品www久久久久久奶水 | 欧美偷拍精品 | 在线欧美视频 | 精品69| 国产成人欧美一区二区三区的 | 免费麻豆av | 精品盗摄一区二区三区 | 人人人草 | 国产又黄又猛又粗又爽 | 亚洲女人初尝黑人巨大 | 欧美福利视频在线观看 | 国产午夜视频 | 久久精品视频2 | 成人性生交生交视频 | 亚洲精品一 | 麻豆影视在线观看 | 国产精品区在线观看 | 亚洲成人一区二区三区 | 在线免费观看污视频 | 黄色亚洲视频 | 激情图片区 | 成人午夜av在线 | 中文字幕日本在线观看 | 国产高清日韩 | 亚洲 欧美 激情 另类 | 日本不卡不卡 | 日本调教电影 | 欧美性成人 | 国产吞精囗交免费视频网站 | 阿v免费视频| 欧美黄色特级视频 | 一级特黄aa大片免费播放 | 久久国产精品影院 | 苍井空张开腿实干12次 | 91视频在线观看视频 | 久久av影视 | 一区二区三区在线看 | 在线中文字幕一区 | 性欢交69精品久久久 | 九九99视频 | 可以直接看av的网址 | 成人三级影院 | 国产a∨精品一区二区三区仙踪林 | 免费观看91视频 | 人人叉人人| 亚洲乱妇老熟女爽到高潮的片 | 97麻豆视频 | 色呦网站 | 日韩一区二区三区在线观看 |