国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

三種簡單排序算法(使用java實現)

2019-11-26 14:02:20
字體:
來源:轉載
供稿:網友

一、冒泡排序

算法思想:遍歷待排序的數組,每次遍歷比較相鄰的兩個元素,如果他們的排列順序錯誤就交換他們的位置,經過一趟排序后,最大的元素會浮置數組的末端。重復操 作,直到排序完成。

示例演示:

算法實現:

for(int i=0;i<array.length-1;i++){//最多排序n-1次      for(int j=0;j<array.length-i-1;j++){//需要交換的次數        if(array[j]>array[j+1]){          int temp=array[j];          array[j]=array[j+1];          array[j+1]=temp;        }      }    }

算法時間復雜度:O(n2) 外層循環需要比較n-1次,內層循環需要比較n次。

二、選擇排序

算法思想:重待排序的數組中選擇一個最小的元素,將它與數組的第一個位置的元素交換位置。然后從剩下的元素中選擇一個最小的元素,將它與第二個位置的元素交換 位置,如果最小元素就是該位置的元素,就將它和自身交換位置,依次類推,直到排序完成。

示例演示:

算法實現:

for(int i=0;i<array.length;i++){      int min=i;      for(int j=i+1;j<array.length;j++){        if(array[j]<array[min]){          min=j;        }      }       int temp=array[min];      array[min]=array[i];      array[i]=temp;    }

時間復雜度:O(n2) 需要n2 /2次比較和n次交換

三、插入排序

算法思想:從數組的第二個元素開始遍歷,將該元素與前面的元素比較,如果該元素比前面的元素小,將該元素保存進臨時變量中,依次將前面的元素后移,然后將該元 素插入到合適的位置。每次排序完成后,索引左邊的元素一定是有序的,但是還可以移動。對于倒置越少的數組,該算法的排序效率越高。

注:倒置: 5 3 6 2 倒置的項為 5-3 5-2 3-2 6-2

示例演示:

算法實現:

for(int i=1;i<array.length;i++){      for(int j=i;j>0&&array[j]<array[j-1];j--){        int temp=array[j];        array[j]=array[j-1];        array[j-1]=temp;      }    }

時間復雜度:O(n2) 最壞情況下n2 /2次比較,n2 /2交換 最好情況N-1次比較,0次交換

以上這篇三種簡單排序算法(使用java實現)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜兰市| 德阳市| 鄢陵县| 太谷县| 丁青县| 浑源县| 双峰县| 三穗县| 丘北县| 鄢陵县| 连江县| 东源县| 邯郸县| 黔东| 洛隆县| 天柱县| 乐安县| 岳池县| 龙州县| 鸡东县| 麻栗坡县| 古蔺县| 定兴县| 信阳市| 德清县| 宿松县| 福建省| 信丰县| 剑阁县| 安远县| 茶陵县| 新安县| 罗江县| 遂昌县| 体育| 独山县| 合肥市| 比如县| 林西县| 溧水县| 镇雄县|