冒泡排序算法。
????????????????????????????????????????????????????????????????????????????????????? 冒泡排序算法
題目: 給定7個int類型的數,用冒泡排序實現出來。
?code:
? public class Maopaopaixu {
?? ?public static? void fun()
?? ?{
?? ??? ?int arr[] ={9,8,6,1,5,3,2};
?? ??? ?System.out.println("數組排序前的順序為:");
?? ??? ?for(int i=0;i<arr.length;i++)
?? ??? ?{
?? ??? ??? ?System.out.print(arr[i]+" ");
?? ??? ?}
?? ??? ?int temp = 0 ;
?? ??? ? for(int i=0;i<arr.length-1;i++)
?? ??? ? {
?? ??? ??? ? for(int j=0;j<arr.length-i-1;j++)
?? ??? ??? ? {
?? ??? ??? ??? ? if(arr[j]>arr[j+1])
?? ??? ??? ??? ? {
?? ??? ??? ??? ??? ? temp = arr[j];
?? ??? ??? ??? ??? ? arr[j] = arr[j+1];
?? ??? ??? ??? ??? ?? arr[j+1] = temp;
?? ??? ??? ??? ? }
?? ??? ??? ? }
?? ??? ? }
?? ??? ?
?? ??? ?System.out.println();
?? ???? System.out.println("數組排列后的順序為: ");
?? ???? for(int i=0; i<arr.length;i++)
?? ???? {
?? ??? ??? ?System.out.print(arr[i]+" ");
?? ???? }
?? ?
?? ?}
?? ?public static void main(String[] args)
?? ?{
?? ??? ?fun();
?? ?}
}
冒泡排序:對n個元素排序時,總共需要進行n-1輪比較。第1輪則比較n-1次,第二輪則比較n-2次。第i輪則比較n-i次。
具體分析:
9 8 7 6 5 4 3??? 總有7個數?? 也就是 n=7 =arr.length = 7
?
1.? 8 7 6 5 4 3 9? 第一輪比較 n-1; 總比較了6次
2.? 7 6 5 4 3 8 9? 第二輪比較 n-2; 總比較了5次
3.? 6 5 4 3 7 8 9? 同理每輪比較, 就是n-i次。
4?? 5 4 3 6 7 8 9
5?? 4 3 5 6 7 8 9
6?? 3 4 5 6 7 8 9
第一for循環語句:
?for(int i=0;i<arr.length-1; i++) ?
?比較arr.length-1 次 ;
然后再看內循環吧!
內循環語句:
for(int j=0;j<arr.length-i-1;j++)
?在兩個for循環中, arr.length-1 ;是為了防止數組越界。?
?
轉載于:https://www.cnblogs.com/pwhit/p/5225925.html
總結
- 上一篇: OA学习笔记-006-SPRING2.5
- 下一篇: 个税社保