<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java 排序算法

      1、歸并排序:

      public class MergeSort {
          public static void main(String[] args) {
              int[] ans = {6, 8, 4, 4, 6, 36, 673, 13, 6, 7, 3, 4, 6, 8, 3, 7, 5, 7, 9, 5};
              System.out.print("原數組:");
              for (int i = 0; i < ans.length; i++) {
                  System.out.print(ans[i]+",");
              }
              System.out.println();
              mergeSort(ans);
              System.out.print("歸并排序之后的數組:");
              for (int i = 0; i < ans.length; i++) {
                  System.out.print(ans[i]+",");
              }
          }
      
          //sort方法的驅動程序
          private static void mergeSort(int[] ans) {
              sort(ans, 0, ans.length - 1);
          }
      
          //將tmp和Cctr當做參數傳入,方便調用merge方法時獲得這兩個參數
          private static void sort(int[] ans, int left, int right) {
              int mid = (left + right) / 2;
              //當分到只剩下一個元素的情況,則退出遞歸程序
              if (left >= right) {
                  return;
              }
              sort(ans, left, mid);
              sort(ans, mid + 1, right);
              merge(ans, left, mid, right);
          }
      
          private static void merge(int[] ans, int left, int mid, int right) {
              //聲明三個計時器
              int Actr = left;
              int Bctr = mid + 1;
              int Cctr = 0;
              int lenA = mid - left + 1;
              int lenB = right - mid;
              //創建臨時數組,長度為A,B數組長度之和
              int[] tmp = new int[right - left + 1];
              //循環A,B中長度較短的長度次數的二倍的次數
              while (Actr <= mid && Bctr <= right) {
                  if (ans[Actr] <= ans[Bctr]) {
                      tmp[Cctr++] = ans[Actr];
                      Actr++;
                  } else {
                      tmp[Cctr++] = ans[Bctr];
                      Bctr++;
                  }
              }
              //如果左邊的還有剩余,將左邊剩余的歸并
              while (Actr <= mid){
                  tmp[Cctr ++] = ans[Actr ++];
              }
              //如果右邊的還有剩余,將右邊剩余的歸并
              while (Bctr <= right){
                  tmp[Cctr ++] = ans[Bctr ++];
              }
              //將臨時數組更新到原數組
              for (int i = 0; i < tmp.length; i++) {
                  ans[left++] = tmp[i];
              }
          }
      }

       

      快速排序:

      public class QuickSort {
      
          
      
          /**
      
           * 根據下標交換數組的兩個元素
      
           * @param arr 數組
      
           * @param index1  下標1
      
           * @param index2  下標2
      
           */
      
          public static void swap(int[] arr, int index1, int index2) {
      
              int temp = arr[index1];
      
              arr[index1] = arr[index2];
      
              arr[index2] = temp;
      
          }
      
          
      
          /**
      
           * 遞歸循環實現快排
      
           * @param arr 數組
      
           * @param startIndex 快排的開始下標
      
           * @param endIndex 快排的結束下標
      
           */
      
          public static void quickSort(int[] arr, int startIndex, int endIndex) {
      
              if(arr != null && arr.length > 0) {
      
                  int start = startIndex, end = endIndex;
      
                  //target是本次循環要排序的元素,每次循環都是確定一個元素的排序位置,這個元素都是開始下標對應的元素
      
                  int target = arr[startIndex];
      
                  //開始循環,從兩頭往中間循環,相遇后循環結束
      
                  while(start<end) {
      
                      //從右向左循環比較,如果比target小,就和target交換位置,讓所有比target小的元素到target的左邊去
      
                      while(start < end) {
      
                          if(arr[end] < target) {
      
                              swap(arr, start, end);
      
                              break;
      
                          }else {
      
                              end--;
      
                          }
      
                      }
      
                      
      
                      //從左向右循環比較,如果比target大,就和target交換位置,讓所有比target大的元素到target的右邊去
      
                      while(start < end) {
      
                          if(arr[start] > target) {
      
                              swap(arr, start, end);
      
                              break;
      
                          }else {
      
                              start++;
      
                          }
      
                      }
      
                  }
      
                  //確定target的排序后,如果target左邊還有元素,繼續遞歸排序
      
                  if((start-1)>startIndex) {
      
                      quickSort(arr, startIndex, start-1);
      
                  }
      
                  //確定target的排序后,如果target右邊還有元素,繼續遞歸排序
      
                  if((end+1)<endIndex) {
      
                      quickSort(arr, end+1, endIndex);
      
                  }
      
              }
      
          }
      
          
      
          public static void main(String[] args) {
      
              int[] arr = new int[]{4,1,8,5,3,2,9,10,6,7};
      
              quickSort(arr,0,9);
      
              for (int i = 0; i < arr.length; i++) {
      
                  System.out.print(arr[i]+",");
      
              }
      
          }
      
      }

       

      posted @ 2025-02-08 20:21  一花一世界!  閱讀(14)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久精品国产亚洲av热一区| 免费无码一区无码东京热| 亚洲av成人一区二区| 国产对白熟女受不了了| 麻豆精品一区二区综合av| 日本精品成人一区二区三区视频| 人妻少妇偷人精品一区| 人妻人人澡人人添人人爽| 天天做天天爱夜夜爽导航| 亚洲欧洲精品日韩av| 桐庐县| 亚洲国产成人久久一区久久| 在线观看成人年视频免费| 阿荣旗| 无遮高潮国产免费观看| 国产99re热这里只有精品| 国产成人无码aa精品一区| 亚洲欧美另类激情综合区蜜芽| 久久久久久综合网天天| 亚欧洲乱码视频在线专区| 国产亚洲精品AA片在线爽| 日韩无专区精品中文字幕| 合作市| 免费无码高潮流白浆视频| 免费AV片在线观看网址| 少妇粗大进出白浆嘿嘿视频| 欧美大肥婆大肥bbbbb| 农村老熟妇乱子伦视频| 精品久久久久久无码人妻蜜桃| av性色av久久无码ai换脸| 国产在线观看免费观看不卡| 99视频在线精品国自产拍| 一区二区三区久久精品国产| 人妻少妇精品中文字幕| 陕西省| 欧美日韩人人模人人爽人人喊| 2019国产精品青青草原| 国产欧美综合在线观看第十页| caoporn成人免费公开| 欧美偷窥清纯综合图区| 亚洲久悠悠色悠在线播放|