JAVA四種基本排序總結

JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進,SHELL排序法是 插入法的改進.所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法

一 插入法:遍歷排序集合,每到一個元素時,都要將這個元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個移動到當前范圍內它最應該出現的位置。交換是相鄰遍歷移動,雙重循環控制實現.這種排序法屬于地頭蛇類型,在我的地牌上我要把所有的東西按一定的順序規整,過來一個,規整一個.
處理代碼如下:
public void sort(int[] data) {
int temp;
for(int i=1; i〈data.length; i++){
for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){

temp=date[j];
data[j]=data[j-1];
data[j-1]=temp; }
}
}
二冒泡法:比較容易,它的內層循環保證遍歷一次后,集合中最小(大)元素出現在它的正確位置,下一次就是次小元素。。。該方法在集合分布的各種情況下交換移動的次數基本不變,屬于最慢的一種排序。實現也是雙重循環控制。這種排序法屬于過江龍,就是要找到極端,但是過獎龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑.
處理代碼如下:
public static int [] maopao(int[] data) {
int temp;
for(int i=0; i〈data.length-1; i++){
for(int j=i+1; j〈data.length; j++){
if(data[i]〈data[j]){
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}

return data;

三選擇法:該方法只是通過遍歷集合記錄最小(大)元素的位置,一次遍歷完后,再進行交換位置操作,類似冒泡,但在比較過程中,不進行交換操作,只記錄元素位置。一次遍歷只進行一次交換操作。這個對與交換次序比較費時的元素比較適合。這種排序法比冒泡法要城府要深的多,我先記住極端數據,待遍歷數據完了之后,我再處理,不像冒泡法那樣只要比自己極端一點的就要處理,選擇法只處理本身范圍內的最極端數據.
public static void xuanze(int[] data) {
int temp;
for (int i = 0; i 〈 data.length; i++) {
int lowIndex = i;
for (int j = data.length - 1; j 〉 i; j--) {
if (data[j] 〉 data[lowIndex]) {
lowIndex = j;
}
}
temp=data[i];
data[i]=data[lowIndex];
data[lowIndex]=temp;
}
}
四 Shell排序:
它是對插入排序的一種改進,是考慮將集合元素按照一定的基數劃分成組去排序,讓每一組在局部范圍內先排成基本有序,最后在進行一次所有元素的插入排序。
public void sort(int[] data) {
for(int i=data.length/2; i〉2; i/=2){
for(int j=0; j〈i; j++){
insertSort(data,j,i);
}
}
insertSort(data,0,1);
}

private void insertSort(int[] data, int start, int inc) {
int temp;
for(int i=start+inc; i〈data.length; i+=inc){
for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){
temp=data[j];
data[j]=data[j-inc]
data[j-inc]=temp;
}
}
}

轉載于:https://www.cnblogs.com/jadmin/archive/2007/05/22/2206422.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277043.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277043.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277043.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows 故障轉移+Hyper-V 虛機自動遷移高 可用

Windows 故障轉移Hyper-V 虛機自動遷移高 可用 Windows 故障轉移Hyper-V 虛機自動遷移高... 1一、系統原理... 31.1 高效率的 VMbus 架構... 31.2 完美支持 Linux 系統... 4二、架構拓樸... 52.1 網絡及系統架構拓樸... 52.2 域結構拓樸... 5三、實驗資源列表... 63.1 網絡設備…

MSSqlServer基礎學習01

1.新建登陸用戶名,須賦予數據庫訪問權限方可訪問已有的數據庫,可以參考如下圖片轉載于:https://www.cnblogs.com/MyVision/p/11242417.html

js,java時間處理

1.JS獲取時間格式為“yyyy-MM-dd HH:mm:ss”的字符串 function getTimeStr(){var myDate new Date();var year myDate.getFullYear(); //獲取完整的年份(4位,1970-????)var month myDate.getMonth(); //獲取當前月份(0-11,0代表1月)month month > 9 ? month : &quo…

框架和模式

1.什么是模式? 模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。 Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題&#xff0c…

人月神話第三章

對于效率和概念的完整性來說,最好由少數干練的人員來設計和開發, 而對于大型系統, 則需要大量的人手, 以使產品能在時間上滿足要求。 文章參照外科手術隊伍對10個人的編程隊伍進行專業化的角色分工。并為如何運作做出詳細說明。…

評上了7月份的Microsoft MVP

昨天晚上覺得困,于是躺到床上去休息了一會兒,沒想到醒來以后就發現了一封信,告訴我當選了7月份的MVP(我們的Cat Chen也同樣當選了,園子里肯定還有其它朋友)。自從去年9月份登陸博客園以來,寫技術…

javascript刪除數組,索引出現問題解決辦法。

var data [{ isRemove: 0, name: "項目1" },{ isRemove: 1, name: "項目2" },{ isRemove: 1, name: "項目3" },{ isRemove: 0, name: "項目4" },{ isRemove: 0, name: "項目5" },{ isRemove: 0, name: "項目6" }…

知識點 - 學習過程中積累

優化數據庫查詢訪問&#xff1a;使用存儲過程&#xff0c;利用連接池打開關閉數據庫&#xff1b;操作數據是&#xff0c;盡量避免裝箱&#xff1b;數據庫中為<NULL>的字段&#xff0c;sql語句中用is null讀取&#xff1b;開發復合控件的主要步驟&#xff1a;1&#xff09…

Mircosoft 正式把Windows Mobile改名為Windows Phone,你會因此而購買Windows Phone嗎?

簡介 本文講述Windows Phone改名事件&#xff0c;以及Windows Phone發展歷史和今后發展策略的想法。 事件 今天下班的時候看報紙&#xff0c;有一段新聞關于昨天(2009年10月6日)Mircosoft正式使用Windows Phone這個名字。我去到原先Windows Mobile的主頁&#xff0c;已經全部由…

【課后服務】20181022切蛋糕

權當拋磚引玉吧&#xff0c;掌握記搜的方法最重要。 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,k; bool book[21][21]; int cake[21][21]; int dp[21][21][21][21]; int yt(int x,int y,int w,int h)//返回蛋糕…

我也來記錄我的一些開發心得和筆記!

博客園&#xff0c;我來了&#xff01; 轉載于:https://www.cnblogs.com/rose2007/archive/2007/07/11/814435.html

經典vim插件功能說明、安裝方法和使用方法介紹(已更新)

1 # 2 轉載請注明出處: http://blog.csdn.net/tge7618291 http://nuoerlz.is-programmer.com 8 # 9 1. 查看 key 相關信息說明的命令 :help keycodes 10 11 # 12 2. ctags 13 (1). 幫助手冊查看 14 :help usr_29 15 16 (2). 功能 17 ctags的功能, 只要在unix/lin…

【哈利波特】Sherbert Lemon對HP的解讀之11

NINEScar FaceThe characteristics of Harry’s scar change considerably.PS/SS – BurningQUOTEHarry, who was starting to feel warm and sleepy, looked up at the High Table again. Hagrid was drinking deeply from his goblet. Professor McGonagall was talking to P…

Linux 下, npm i 老是被killed 已殺死

2019獨角獸企業重金招聘Python工程師標準>>> node&#xff1a;v8.12.0 npm v6.4.1 npm i 安裝到一半會報這樣到錯誤&#xff0c;并終止&#xff1a; npm WARN deprecated socks1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious …

(轉)創建X509證書,并獲取證書密鑰的一點研究

創建X509證書&#xff0c;并獲取證書密鑰的一點研究 作者&#xff1a;肖波 個人博客&#xff1a;http://blog.csdn.net/eaglet ; http://www.cnblogs.com/eaglet 2007/7 南京 背景 服務器SSL數字證書和客戶端單位數字證書的格式遵循 X.509 標準。 X.509 是由國際電信聯盟&#…

css樣式優先級計算規則

css樣式的優先級分為引入優先級和聲明優先級。 引入優先級 引入樣式一般分為外部樣式&#xff0c;內部樣式&#xff0c;內聯樣式。 外部樣式&#xff1a;使用link引入的外部css文件。 內部樣式&#xff1a;使用style標簽書寫的css樣式。 內聯樣式&#xff1a;直接書寫在html標簽…

phpstudy-5.6.27-nts??安裝redis擴展

2019獨角獸企業重金招聘Python工程師標準>>> redis擴展安裝流程 第一步&#xff1a; 首先直接查看一下phpinfo()的信息 找到下面兩條信息 Architecturex86PHP Extension BuildAPI20131226,NTS,VC11Loaded Configuration FileD:\phpStudy\php\php-5.6.27-nts\php.ini…

用DDA Convolution和Perlin Noise來模擬水粉畫筆觸

在西方&#xff0c;水彩畫和水粉畫是可以統稱為Watercolor的,水粉畫通常也稱為不透明水彩畫或樹膠水彩畫&#xff08;Gouache&#xff09;&#xff0c;兩者既有相似之處&#xff0c;又有所區別。水粉畫是以水作為媒介&#xff0c;這一點&#xff0c;它與水彩畫是相同的。所以&a…

第三課 Makefile文件的制作(上)

1.序言&#xff1a; 前面的課程講解了從gcc編譯過程到其實踐&#xff0c;大家可以看到其實在這些步驟中有些是可以簡化編譯的&#xff0c;但由于參數多以及項目中文件數量多的原因難免會造成錯誤甚至是浪費大量的時間在這編譯上&#xff0c;為此linux系統中專門也有這個工具&am…

刺猬文│從啟動方式來看播客鏈的運行機制—設置驗證者

&#xff08;圖片出自網絡&#xff0c;版權歸原作者所有&#xff09;上一篇刺猬文我們介紹了播客鏈是如何實現Dpos的&#xff0c;其實質過程就是&#xff1a;節點A打包&#xff0c;將打包的區塊發送給其它的節點&#xff0c;其它節點根據當前時間&#xff0c;判斷是否應該由A節…