一、冒泡排序 1.也就是依次選出最大的放在最後面 package com.bjpowernode.java_learning; public class D70_1_BubbleSort { public static void main(String[] args) { /* * 冒泡排序演算法 ...
一、冒泡排序
1.也就是依次選出最大的放在最後面
package com.bjpowernode.java_learning; public class D70_1_BubbleSort { public static void main(String[] args) { /* * 冒泡排序演算法:有一個int類型的數組:3 1 6 2 5 */ int[] a = {3,1,6,2,5,45,8,9,86}; //開始排序 for (int i=a.length-1;i>0;i--) { for (int j=0;j<i;j++) { if(a[j]>a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } //也可以這麼寫 //for(int j=0;j<i;J++){ // if(a[j]>a[i]){ // int temp = a[j]; // a[j] = a[i]; // a[i] = temp; //} } for(int i=0;i<a.length;i++) { System.out.println(a[i]); } } }
二、選擇排序
1.也就是依次選出最小的放在前面
package com.bjpowernode.java_learning; public class D70_2_SelectionSort { public static void main(String[] args) { int [] a = {45,4,8,2,69,31,2,0}; int min = 0; for(int i=0;i<a.length-1;i++) { for(int j=i+1;j<a.length;j++) { if(a[i]>a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for(int i=0;i<a.length;i++) { System.out.println(a[i]); } } }
總結:在一個迴圈中,flag如果有上界,那麼慎用flag+1這種操作,容易造成數組越界;flag如果有下界,那麼慎用flag-1這種操作,容易造成越界,解決方式就是迴圈的初始數字要選好。
四、源碼:
D70_2_SelectionSort.java
D70_1_BubbleSort.java
https://github.com/ruigege66/Java/blob/master/D70_1_BubbleSort.java
https://github.com/ruigege66/Java/blob/master/D70_2_SelectionSort.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料