❶ java在eclipse寫代碼的快捷鍵有哪些
常用的如下:
ctrl+shift+r:打開資源
ctrl+o:快速outline
如果想要查看當前類有哪些方法或屬性,但又不想把代碼拉上拉下,也不想使用查找功能的話,就用ctrl+o吧。它可以列出當前類中的所有方法及屬性。
shift+enter及ctrl+shift+enter
Shift+enter在當前行之下創建一個空白行,與游標是否在行末無關。Ctrl+shift+enter則在當前行之前插入空白行。
Alt+方向鍵
這也是個節省時間的法寶。這個組合將當前行的內容往上或下移動。在try/catch部分,這個快捷方式尤其好使。
ctrl+m
Ctrl+m是編輯器窗口最大化的快捷鍵。
Control-Shift-T: 打開類型(Open type)
用eclipse很容易打開介面的實現類的,按ctrl+t會列出介面的實現類列表
Control-/:
對一行注釋或取消注釋。對於多行也同樣適用。
Ctrl+Alt+H
如果想知道一個類的方法到底被那些其他的類調用,那麼選中這個方法名,然後按「Ctrl+Alt+H」
Alt+左右方向鍵
經常會遇到看代碼時Ctrl+左鍵,層層跟蹤,然後迷失在代碼中的情況,這時只需要按「Alt+左方向鍵」就可以退回到上次閱讀的位置,同理,按「Alt+右方向鍵」會前進到剛才退回的閱讀位置,就像瀏覽器的前進和後退按鈕一樣。
Ctrl+Shift+O
導入包。
❷ 濡備綍鐢╦ava瀹炵幇蹇閫熸帓搴,綆絳旇茶В涓嬪師鐞
涓銆佸備綍鐢╦ava瀹炵幇蹇閫熸帓搴,綆絳旇茶В涓嬪師鐞
浜屻佸揩閫熸帓搴
鍩烘湰鎬濇兂鏄錛氶氳繃涓瓚熸帓搴忓皢瑕佹帓搴忕殑鏁版嵁鍒嗗壊鎴愮嫭絝嬬殑涓ら儴鍒嗭紝鍏朵腑涓閮ㄥ垎鐨勬墍鏈夋暟鎹閮芥瘮鍙﹀栦竴閮ㄥ垎鐨勬墍鏈夋暟鎹閮借佸皬錛岀劧鍚庡啀鎸夋ゆ柟娉曞硅繖涓ら儴鍒嗘暟鎹鍒嗗埆榪涜屽揩閫熸帓搴忥紝鏁翠釜鎺掑簭榪囩▼鍙浠ラ掑綊榪涜岋紝浠ユよ揪鍒版暣涓鏁版嵁鍙樻垚鏈夊簭搴忓垪
蹇閫熸帓搴忕畻娉曢氳繃澶氭℃瘮杈冨拰浜ゆ崲鏉ュ疄鐜版帓搴忥紝鍏舵帓搴忔祦紼嬪備笅錛
(1)棣栧厛璁懼畾涓涓鍒嗙晫鍊礆紝閫氳繃璇ュ垎鐣屽煎皢鏁扮粍鍒嗘垚宸﹀彸涓ら儴鍒嗐
(2)灝嗗ぇ浜庢垨絳変簬鍒嗙晫鍊肩殑鏁版嵁闆嗕腑鍒版暟緇勫彸杈癸紝灝忎簬鍒嗙晫鍊肩殑鏁版嵁闆嗕腑鍒版暟緇勭殑宸﹁竟銆傛ゆ椂錛屽乏杈歸儴鍒嗕腑鍚勫厓緔犻兘灝忎簬鎴栫瓑浜庡垎鐣屽礆紝鑰屽彸杈歸儴鍒嗕腑鍚勫厓緔犻兘澶т簬鎴栫瓑浜庡垎鐣屽箋
(3)鐒跺悗錛屽乏杈瑰拰鍙寵竟鐨勬暟鎹鍙浠ョ嫭絝嬫帓搴忋傚逛簬宸︿晶鐨勬暟緇勬暟鎹錛屽張鍙浠ュ彇涓涓鍒嗙晫鍊礆紝灝嗚ラ儴鍒嗘暟鎹鍒嗘垚宸﹀彸涓ら儴鍒嗭紝鍚屾牱鍦ㄥ乏杈規斁緗杈冨皬鍊礆紝鍙寵竟鏀劇疆杈冨ぇ鍊箋傚彸渚х殑鏁扮粍鏁版嵁涔熷彲浠ュ仛綾諱技澶勭悊
(4)閲嶅嶄笂榪拌繃紼嬶紝鍙浠ョ湅鍑猴紝榪欐槸涓涓閫掑綊瀹氫箟銆傞氳繃閫掑綊灝嗗乏渚ч儴鍒嗘帓濂藉簭鍚庯紝鍐嶉掑綊鎺掑ソ鍙充晶閮ㄥ垎鐨勯『搴忋傚綋宸︺佸彸涓や釜閮ㄥ垎鍚勬暟鎹鎺掑簭瀹屾垚鍚庯紝鏁翠釜鏁扮粍鐨勬帓搴忎篃灝卞畬鎴愪簡銆
涓嬮潰閫氳繃涓涓渚嬪瓙浠嬬粛蹇閫熸帓搴忕畻娉曠殑鎬濇兂錛屽亣璁捐佸規暟緇刟[10]={6錛1錛2錛7錛9錛3錛4錛5錛10錛8}榪涜屾帓搴忥紝棣栧厛瑕佸湪鏁扮粍涓閫夋嫨涓涓鏁頒綔涓哄熀鍑嗗礆紝榪欎釜鏁板彲浠ラ殢鎰忛夋嫨錛屽湪榪欓噷錛屾垜浠閫夋嫨鏁扮粍鐨勭涓涓鍏冪礌a[0]=6浣滀負鍩哄噯鍊礆紝鎺ヤ笅鏉ワ紝鎴戜滑闇瑕佹妸鏁扮粍涓灝忎簬6鐨勬暟鏀懼湪宸﹁竟錛屽ぇ浜6鐨勬暟鏀懼湪鍙寵竟錛屾庝箞瀹炵幇鍛錛
鎴戜滑璁劇疆涓や釜鈥滃摠鍏碘濓紝璁頒負鈥滃摠鍏礽鈥濆拰鈥滃摠鍏礿鈥濓紝浠栦滑鍒嗗埆鎸囧悜鏁扮粍鐨勭涓涓鍏冪礌鍜屾渶鍚庝竴涓鍏冪礌錛屽嵆i=0錛宩=9銆傞栧厛鍝ㄥ叺j寮濮嬪嚭鍔錛屽摠鍏礿涓姝ヤ竴姝ュ湴鍚戝乏鎸鍔錛堝嵆j鈥擄級錛岀洿鍒版壘鍒頒竴涓灝忎簬6鐨勬暟鍋滀笅鏉ャ傛帴涓嬫潵鍝ㄥ叺i鍐嶄竴姝ヤ竴姝ュ悜鍙蟲尓鍔錛堝嵆i錛夛紝鐩村埌鎵懼埌涓涓鏁板ぇ浜6鐨勬暟鍋滀笅鏉ャ
鏈鍚庡摠鍏礿鍋滃湪浜嗘暟瀛5闈㈠墠錛屽摠鍏礽鍋滃湪浜嗘暟瀛7闈㈠墠銆傛ゆ椂灝遍渶瑕佷氦鎹i鍜宩鎸囧悜鐨勫厓緔犵殑鍊箋
浜ゆ崲涔嬪悗鐨勬暟緇勫彉涓篴[10]={6錛1錛2錛5錛9錛3錛4錛7錛10錛8}錛
絎涓嬈′氦鎹㈣嚦姝ょ粨鏉熴傛帴涓嬫潵錛岀敱浜庡摠鍏礽鍜屽摠鍏礿榪樻病鏈夌浉閬囷紝浜庢槸鍝ㄥ叺j緇х畫鍚戝墠錛屽彂鐜版瘮6灝忕殑4涔嬪悗鍋滀笅錛涘摠鍏礽緇х畫鍚戝墠錛屽彂鐜版瘮6澶х殑9涔嬪悗鍋滀笅錛屼袱鑰呭啀榪涜屼氦鎹銆備氦鎹涔嬪悗鐨勬暟緇勫彉涓篴[10]={6錛1錛2錛5錛4錛3錛9錛7錛10錛8}銆
絎浜屾′氦鎹㈣嚦姝ょ粨鏉熴傛帴涓嬫潵錛屽摠鍏礿緇х畫鍚戝墠錛屽彂灝忔瘮6灝忕殑3鍋滀笅鏉ワ紱鍝ㄥ叺i緇х畫鍚戝墠錛屽彂鐜癷==j浜嗭紒錛侊紒浜庢槸錛岃繖涓杞鐨勬帰嫻嬪氨瑕佺粨鏉熶簡錛屾ゆ椂浜ゆ崲a[i]涓庡熀鍑嗙殑鍊礆紝鏁扮粍a灝變互6涓哄垎鐣岀嚎錛屽垎鎴愪簡灝忎簬6鍜屽ぇ浜6鐨勫乏鍙充袱閮ㄥ垎錛歛[10]={3錛1錛2錛5錛4錛6錛9錛7錛10錛8}銆
鑷蟲わ紝絎涓杞蹇閫熸帓搴忓畬鍏ㄧ粨鏉燂紝鎺ヤ笅鏉ワ紝瀵逛簬6宸﹁竟鐨勫崐閮ㄥ垎3錛1錛2錛5錛4錛屾墽琛屼互涓婅繃紼嬶紱瀵逛簬6鍙寵竟鐨勫崐閮ㄥ垎9錛7錛10錛8錛屾墽琛屼互涓婅繃紼嬶紝鐩村埌涓嶅彲鎷嗗垎鍑烘柊鐨勫瓙搴忓垪涓烘銆傛渶緇堝皢浼氬緱鍒拌繖鏍風殑搴忓垪錛1 2 3 4 5 6 7 8 9 10錛屽埌姝わ紝鎺掑簭瀹屽叏緇撴潫銆
蹇閫熸帓搴忕殑涓嬈″垝鍒嗙畻娉曚粠涓ゅご浜ゆ浛鎼滅儲錛岀洿鍒發ow鍜宧ight閲嶅悎錛屽洜姝ゅ叾鏃墮棿澶嶆潅搴︽槸O(n)錛涜屾暣涓蹇閫熸帓搴忕畻娉曠殑鏃墮棿澶嶆潅搴︿笌鍒掑垎鐨勮稛鏁版湁鍏熾
鐞嗘兂鐨勬儏鍐墊槸錛屾瘡嬈″垝鍒嗘墍閫夋嫨鐨勪腑闂存暟鎮板ソ灝嗗綋鍓嶅簭鍒楀嚑涔庣瓑鍒嗭紝緇忚繃log 2 n瓚熷垝鍒嗭紝渚垮彲寰楀埌闀垮害涓1鐨勫瓙琛ㄣ傝繖鏍鳳紝鏁翠釜綆楁硶鐨勬椂闂村嶆潅搴︿負O(nlog 2 n)銆
鏈鍧忕殑鎯呭喌鏄錛屾瘡嬈℃墍閫夌殑涓闂存暟鏄褰撳墠搴忓垪涓鐨勬渶澶ф垨鏈灝忓厓緔狅紝榪欎嬌寰楁瘡嬈″垝鍒嗘墍寰楃殑瀛愯〃涓涓涓涓虹┖琛錛屽彟涓瀛愯〃鐨勯暱搴︿負鍘熻〃鐨勯暱搴-1銆傝繖鏍鳳紝闀垮害涓簄鐨勬暟鎹琛ㄧ殑蹇閫熸帓搴忛渶瑕佺粡榪噉瓚熷垝鍒嗭紝浣垮緱鏁翠釜鎺掑簭綆楁硶鐨勬椂闂村嶆潅搴︿負O(n 2 )銆
涓烘敼鍠勬渶鍧忔儏鍐典笅鐨勬椂闂存ц兘錛屽彲閲囩敤鍏朵粬鏂規硶閫夊彇涓闂存暟銆傞氬父閲囩敤鈥滀笁鑰呭煎彇涓鈥濇柟娉曪紝鍗蟲瘮杈僅->r[low].key銆丠->r[high].key涓嶩->r[(lowhigh)/2].key錛屽彇涓夎呬腑鍏抽敭瀛椾負涓鍊肩殑鍏冪礌涓轟腑闂存暟銆
鍙浠ヨ瘉鏄庯紝蹇閫熸帓搴忕殑騫沖潎鏃墮棿澶嶆潅搴︿篃鏄疧(nlog 2 n)銆傚洜姝わ紝璇ユ帓搴忔柟娉曡璁や負鏄鐩鍓嶆渶濂界殑涓縐嶅唴閮ㄦ帓搴忔柟娉
涓夈佸揩閫熸帓搴忕畻娉曞師鐞嗕笌瀹炵幇
蹇閫熸帓搴忕殑鍩烘湰鎬濇兂灝辨槸浠庝竴涓鏁扮粍涓浠繪剰鎸戦変竴涓鍏冪礌錛堥氬父鏉ヨ寸礌錛変綔涓轟腑杞村厓緔狅紝灝嗗墿涓嬬殑鍏冪礌浠ヤ腑錛屽皢灝忎簬絳変簬涓杞村厓緔犵殑鏀懼埌涓杞村厓緔犵殑宸﹁竟錛屽皢澶т簬涓杞村厓緔犵殑鏀懼埌涓杞村厓緔犵殑鍙寵竟銆
鐒跺悗浠ュ綋鍓嶄腑杞村厓緔犵殑浣嶇疆涓虹晫錛屽皢宸﹀崐閮ㄥ垎瀛愭暟緇勫拰鍙沖崐閮ㄥ垎瀛愭暟緇勶紝鐩村埌瀛愭暟緇勭殑鍏冪礌涓鏁板皬浜庣瓑浜1錛堝洜涓轟竴涓鍏冪礌鐨勬暟緇勫繀瀹氭槸鏈夊簭鐨勶級銆
鏁扮粍涓涓や釜鍏冪礌鍊肩殑Swap鏂規硶錛屽叾浠g爜
public static void Swap(int[] A, int i
int tmp;
tmp =
A[i] = A[j];
A[j] = tmp;
鎵╁睍璧勬枡錛
蹇閫熸帓搴忕畻娉 鐨勫熀鏈鎬濇兂鏄錛氬皢鎵瑕佽繘琛屾帓搴忕殑鏁板垎涓哄乏鍙充袱鏈夋暟鎹閮芥瘮鍙﹀栦竴 閮ㄥ垎鐨勬暟鎹灝忥紝鐒跺悗灝嗘墍鍒嗗緱鐨勪袱鍒嗭紝閲嶅嶆墽琛屼互涓婄殑鍒掑垎鎿嶄綔錛岀洿 鍒版墍鏈夎佽繘琛屾帓搴忕殑鏁版嵁鍙樹負
瀹氫箟涓や釜鍙橀噺low鍜宧igh錛屽皢low銆乭igh鍒嗗埆璁劇疆涓鴻佽繘琛屾帓搴忕殑搴忓垪鐨勮搗濮嬪厓緔犲拰鏈鍚庝竴涓鍏冪礌鐨勪笅鏍囥傜涓嬈★紝low鍜宧igh鐨勫彇鍊煎垎鍒涓0鍜宯-1錛屾帴涓嬫潵鐨勬瘡嬈″彇鍊肩敱鍒掑垎寰楀埌鐨勫簭鍒楄搗濮嬪厓緔犲拰鏈鍚庝竴涓鍏冪礌鐨勪笅鏍囨潵鍐沖畾銆
瀹氫箟涓涓鍙橀噺key錛屾帴涓嬫潵浠key鐨勫彇鍊間負鍩哄噯灝嗘暟緇凙鍒掑垎涓哄乏鍙沖間負瑕佽繘琛屾帓搴忓簭鍒楃殑絎涓涓鍏冪礌鍊箋傜涓嬈$殑姣庢″彇鍊肩敱瑕佸垝 鍒嗗簭鍒楃殑璧峰嬪厓緔犲喅瀹氥
浠巋igh鎵鎸囧悜鐨勬暟緇勫厓緔犲紑濮嬪悜宸︽壂鎻忥紝鎵鎻忕殑鍚屾椂灝嗕笅鏍囦負high鐨勬暟緇勫厓緔犱緷杈冩搷浣滐紝鐩村埌high涓嶅ぇ浜巐ow鎴栨壘鍒扮涓涓灝忎簬鍩哄噯鍊艱ュ艱祴鍊肩粰low鎵鎸囧悜鐨勬暟緇勫厓緔狅紝鍚屾椂灝唋ow鍙崇Щ涓涓浣嶇疆銆
濡傛灉low渚濈劧灝忎簬high錛岄偅涔堢敱low鎵鎸囧悜鐨勬暟緇勫厓緔犲紑濮嬪悜鍙蟲壂鎻忥紝鎵鎻忕殑鍚屾椂灝嗕笅鏍囦負low鐨勬暟緇勫厓緔犲間緷嬈′笌鍒掑垎鐨勫熀鍑嗕綔錛岀洿鍒發ow涓嶅皬浜巋igh鎴栨壘鍒扮涓涓澶т簬鍩哄噯鍊糼ey鐨勬暟緇勫厓緔狅紝鐒跺悗灝嗚ュ艱祴緇檋igh鎵鎸囧悜鐨勬暟緇勫厓緔狅紝鍚屾椂灝唄i
閲嶅嶆ラ(3) (4)錛岀洿鍒發ow鐨勬嶄笉灝忎簬鍔熷垝鍒嗗悗寰楀埌鐨勫乏鍙充袱閮ㄥ垎鍒嗗埆涓篈[low鈥︹pos-1]鍜孉[pos1鈥︹high]錛屽叾涓錛宲os涓嬫爣鎵瀵瑰簲鐨勬暟緇勫厓緔犵殑鍊煎氨鏄榪涜屽垝鍒嗙殑鍩哄噯鍊糼e涓簆os鐨勬暟緇勫厓緔犺祴
鍙傝冭祫鏂:蹇閫熸帓搴忕畻娉昣鐧懼害鐧劇
❸ java程序員敲代碼的時候是怎麼迅速打完public static void main(String args []);等類似代碼的。
Ctrl+1 快速修復(最經典的快捷鍵,就不用多說了)
Ctrl+D: 刪除當前行
Ctrl+Alt+↓ 復制當前行到下一行(復制增加)
Ctrl+Alt+↑ 復制當前行到上一行(復制增加)
Alt+↓ 當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)
Alt+↑ 當前行和上面一行交互位置(同上)
Alt+← 前一個編輯的頁面
Alt+→ 下一個編輯的頁面(當然是針對上面那條來說了)
Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性
Shift+Enter 在當前行的下一行插入空行(這時滑鼠可以在當前行的任一位置,不一定是最後)
Shift+Ctrl+Enter 在當前行插入空行(原理同上條)
Ctrl+Q 定位到最後編輯的地方
Ctrl+L 定位在某行 (對於程序超過100的人就有福音了)
Ctrl+M 最大化當前的Edit或View (再按則反之)
Ctrl+/ 注釋當前行,再按則取消注釋
Ctrl+O 快速顯示 OutLine
Ctrl+T 快速顯示當前類的繼承結構
Ctrl+W 關閉當前Editer
Ctrl+K 參照選中的Word快速定位到下一個
Ctrl+E 快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)
Ctrl+/(小鍵盤) 折疊當前類中的所有代碼
Ctrl+×(小鍵盤) 展開當前類中的所有代碼
Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)
Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J後,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)
Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從後往前查)
Ctrl+Shift+F4 關閉所有打開的Editer
Ctrl+Shift+X 把當前選中的文本全部變味小寫
Ctrl+Shift+Y 把當前選中的文本全部變為小寫
Ctrl+Shift+F 格式化當前代碼
Ctrl+Shift+P 定位到對於的匹配符(譬如{}) (從前面定位後面時,游標要在匹配符裡面,後面到前面,則反之)
下面的快捷鍵是重構裡面常用的,本人就自己喜歡且常用的整理一下(注:一般重構的快捷鍵都是Alt+Shift開頭的了)
Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變數和類的Rename,比手工方法能節省很多勞動力)
Alt+Shift+M 抽取方法 (這是重構裡面最常用的方法之一了,尤其是對一大堆泥團代碼有用)
Alt+Shift+C 修改函數結構(比較實用,有N個函數調用了這個方法,修改一次搞定)
Alt+Shift+L 抽取本地變數( 可以直接把一些魔法數字和字元串抽取成一個變數,尤其是多處調用的時候)
Alt+Shift+F 把Class中的local變數變為field變數 (比較實用的功能)
Alt+Shift+I 合並變數(可能這樣說有點不妥Inline)
Alt+Shift+V 移動函數和變數(不怎麼常用)
Alt+Shift+Z 重構的後悔葯(Undo)
編輯
作用域 功能 快捷鍵
全局 查找並替換 Ctrl+F
文本編輯器 查找上一個 Ctrl+Shift+K
文本編輯器 查找下一個 Ctrl+K
全局 撤銷 Ctrl+Z
全局 復制 Ctrl+C
全局 恢復上一個選擇 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 內容輔助 Alt+/
全局 全部選中 Ctrl+A
全局 刪除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java編輯器 顯示工具提示描述 F2
Java編輯器 選擇封裝元素 Alt+Shift+↑
Java編輯器 選擇上一個元素 Alt+Shift+←
Java編輯器 選擇下一個元素 Alt+Shift+→
文本編輯器 增量查找 Ctrl+J
文本編輯器 增量逆向查找 Ctrl+Shift+J
全局 粘貼 Ctrl+V
全局 重做 Ctrl+Y
查看
作用域 功能 快捷鍵
全局 放大 Ctrl+=
全局 縮小 Ctrl+-
窗口
作用域 功能 快捷鍵
全局 激活編輯器 F12
全局 切換編輯器 Ctrl+Shift+W
全局 上一個編輯器 Ctrl+Shift+F6
全局 上一個視圖 Ctrl+Shift+F7
全局 上一個透視圖 Ctrl+Shift+F8
全局 下一個編輯器 Ctrl+F6
全局 下一個視圖 Ctrl+F7
全局 下一個透視圖 Ctrl+F8
文本編輯器 顯示標尺上下文菜單 Ctrl+W
全局 顯示視圖菜單 Ctrl+F10
全局 顯示系統菜單 Alt+-
導航
作用域 功能 快捷鍵
Java編輯器 打開結構 Ctrl+F3
全局 打開類型 Ctrl+Shift+T
全局 打開類型層次結構 F4
全局 打開聲明 F3
全局 打開外部javadoc Shift+F2
全局 打開資源 Ctrl+Shift+R
全局 後退歷史記錄 Alt+←
全局 前進歷史記錄 Alt+→
全局 上一個 Ctrl+,
全局 下一個 Ctrl+.
Java編輯器 顯示大綱 Ctrl+O
全局 在層次結構中打開類型 Ctrl+Shift+H
全局 轉至匹配的括弧 Ctrl+Shift+P
全局 轉至上一個編輯位置 Ctrl+Q
Java編輯器 轉至上一個成員 Ctrl+Shift+↑
Java編輯器 轉至下一個成員 Ctrl+Shift+↓
文本編輯器 轉至行 Ctrl+L
搜索
作用域 功能 快捷鍵
全局 出現在文件中 Ctrl+Shift+U
全局 打開搜索對話框 Ctrl+H
全局 工作區中的聲明 Ctrl+G
全局 工作區中的引用 Ctrl+Shift+G
文本編輯
作用域 功能 快捷鍵
文本編輯器 改寫切換 Insert
文本編輯器 上滾行 Ctrl+↑
文本編輯器 下滾行 Ctrl+↓
文件
作用域 功能 快捷鍵
全局 保存 Ctrl+X
Ctrl+S
全局 列印 Ctrl+P
全局 關閉 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部關閉 Ctrl+Shift+F4
全局 屬性 Alt+Enter
全局 新建 Ctrl+N
項目
作用域 功能 快捷鍵
全局 全部構建 Ctrl+B
源代碼
作用域 功能 快捷鍵
Java編輯器 格式化 Ctrl+Shift+F
Java編輯器 取消注釋 Ctrl+\
Java編輯器 注釋 Ctrl+/
Java編輯器 添加導入 Ctrl+Shift+M
Java編輯器 組織導入 Ctrl+Shift+O
Java編輯器 使用try/catch塊來包圍 未設置,太常用了,所以在這里列出,建議自己設置。
也可以使用Ctrl+1自動修正。
運行
作用域 功能 快捷鍵
全局 單步返回 F7
全局 單步跳過 F6
全局 單步跳入 F5
全局 單步跳入選擇 Ctrl+F5
全局 調試上次啟動 F11
全局 繼續 F8
全局 使用過濾器單步執行 Shift+F5
全局 添加/去除斷點 Ctrl+Shift+B
全局 顯示 Ctrl+D
全局 運行上次啟動 Ctrl+F11
全局 運行至行 Ctrl+R
全局 執行 Ctrl+U
❹ java快速排序簡單代碼
.example-btn{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.example-btn:hover{color:#fff;background-color:#47a447;border-color:#398439}.example-btn:active{background-image:none}div.example{width:98%;color:#000;background-color:#f6f4f0;background-color:#d0e69c;background-color:#dcecb5;background-color:#e5eecc;margin:0 0 5px 0;padding:5px;border:1px solid #d4d4d4;background-image:-webkit-linear-gradient(#fff,#e5eecc 100px);background-image:linear-gradient(#fff,#e5eecc 100px)}div.example_code{line-height:1.4em;width:98%;background-color:#fff;padding:5px;border:1px solid #d4d4d4;font-size:110%;font-family:Menlo,Monaco,Consolas,"Andale Mono","lucida console","Courier New",monospace;word-break:break-all;word-wrap:break-word}div.example_result{background-color:#fff;padding:4px;border:1px solid #d4d4d4;width:98%}div.code{width:98%;border:1px solid #d4d4d4;background-color:#f6f4f0;color:#444;padding:5px;margin:0}div.code div{font-size:110%}div.code div,div.code p,div.example_code p{font-family:"courier new"}pre{margin:15px auto;font:12px/20px Menlo,Monaco,Consolas,"Andale Mono","lucida console","Courier New",monospace;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;border:1px solid #ddd;border-left-width:4px;padding:10px 15px} 排序演算法是《數據結構與演算法》中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸並排序、快速排序、堆排序、基數排序等。以下是快速排序演算法:
快速排序是由東尼·霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個項目要 Ο(nlogn) 次比較。在最壞譽渣宏狀況下則需要 Ο(n2) 次比較,但這種狀況並不常見。事實上,快速排序梁灶通常明顯比其他 Ο(nlogn) 演算法更快,因為它的內部循環(inner loop)可以在大部分的架構上很有效率地被實現出來。
快速排序使用分治法(Divide and conquer)策略來把一個串列(list)分為兩個子串列(sub-lists)。
快速排序又是一種分而治之思想在排序演算法上的典型應用。本質上來看,快速排序應該算是在冒慶冊泡排序基礎上的遞歸分治法。
快速排序的名字起的是簡單粗暴,因為一聽到這個名字你就知道它存在的意義,就是快,而且效率高!它是處理大數據最快的排序演算法之一了。雖然 Worst Case 的時間復雜度達到了 O(n?),但是人家就是優秀,在大多數情況下都比平均時間復雜度為 O(n logn) 的排序演算法表現要更好,可是這是為什麼呢,我也不知道。好在我的強迫症又犯了,查了 N 多資料終於在《演算法藝術與信息學競賽》上找到了滿意的答案:
快速排序的最壞運行情況是 O(n?),比如說順序數列的快排。但它的平攤期望時間是 O(nlogn),且 O(nlogn) 記號中隱含的常數因子很小,比復雜度穩定等於 O(nlogn) 的歸並排序要小很多。所以,對絕大多數順序性較弱的隨機數列而言,快速排序總是優於歸並排序。
1. 演算法步驟
從數列中挑出一個元素,稱為 "基準"(pivot);
重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分區退出之後,該基準就處於數列的中間位置。這個稱為分區(partition)操作;
遞歸地(recursive)把小於基準值元素的子數列和大於基準值元素的子數列排序;
2. 動圖演示
代碼實現 JavaScript 實例 function quickSort ( arr , left , right ) {
var len = arr. length ,
partitionIndex ,
left = typeof left != 'number' ? 0 : left ,
right = typeof right != 'number' ? len - 1 : right ;
if ( left
❺ 求java快速排序的正確代碼
一趟快速怕序的具體做法是:附設兩個指針low和high,他們的初值分別為low和high,設樞軸記錄的關鍵字為privotkey,則首先從high所指位置向前搜索找到第一個關鍵字小於pivotkey的記錄和樞軸記錄互相交換,然後從low所指向的位置起向後搜索,找到第一個關鍵字大於privotkey的記錄和樞軸記錄互相交換,重復這兩步直至low==high位置.
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class 快速排序_1 {
public static void main(String[] args) throws InterruptedException {
int test[] = {15,23,56,7,13,52,20,7};
new 快速排序_1().qSort(test, 0, test.length-1);
for(int k:test) System.out.println(k);
}
public void qSort(int []array,int low,int high){
if(low
int privot=partition(array,low,high);
qSort(array,low,privot-1);
qSort(array,privot+1,high);
}
}
public int partition(int [] array,int low,int high){
/**
* 選擇 low位置 作為曲軸(支點)
*/
int pivot=array[low];
int temp=0;
/**
* 如果 low
*/
while(low
/**
* 先從 high端 開始判斷
*/
while(low=pivot) high--;
/**
* 進行 置換操作
*/
if(low
array[low]=array[high];
low++;
}
/**
* 從 low 端判斷
*/
while(low
/**
* 進行 置換操作
*/
if(low
array[high]=array[low];
high--;
}
}
array[low]=pivot;
return low;
}
}