常见的排序算法
冒泡排序、选择排序、插入排序的时间复杂度为 O(n^2)。
冒泡排序

  static void BubbleSortAlgorithm(int[] array)
  {
      int n = array.Length;
      for (int i = 0; i < n - 1; i++)
      {
          for (int j = 0; j < n - i - 1; j++)
          {
              // 如果当前元素大于下一个元素,交换它们
              if (array[j] > array[j + 1])
              {
                  int temp = array[j];
                  array[j] = array[j + 1];
                  array[j + 1] = temp;
              }
          }
      }
  }
选择排序

  static void SelectionSortAlgorithm(int[] array)
  {
      int n = array.Length;
      for (int i = 0; i < n - 1; i++)
      {
          // 找到未排序部分的最小元素的索引
          int minIndex = i;
          for (int j = i + 1; j < n; j++)
          {
              if (array[j] < array[minIndex])
              {
                  minIndex = j;
              }
          }
          // 将找到的最小元素与未排序部分的第一个元素交换位置
          int temp = array[minIndex];
          array[minIndex] = array[i];
          array[i] = temp;
      }
  }
插入排序

  static void InsertionSortAlgorithm(int[] array)
  {
      int n = array.Length;
      for (int i = 1; i < n; i++)
      {
          int key = array[i];
          int j = i - 1;
          // 将比 key 大的元素向右移动
          while (j >= 0 && array[j] > key)
          {
              array[j + 1] = array[j];
              j--;
          }
          // 将 key 插入到正确的位置
          array[j + 1] = key;
      }
  }
                    
                
                
            
        
浙公网安备 33010602011771号