wenbo2005.online

学习记录 / STM32

C 语言常用排序

STM322026-10-13

(1)冒泡排序

//       public static int findmax(int[] num)
//       {
//           int len = num.length;
//           for(int i=0;i<len;i++)
//           {
//               for(int j=0;j<len-1-i;j++)
//               {
//                   if(num[j+1] < num[j])
//                   {
//                       int temp = num[j];
//                       num[j] = num[j+1];
//                       num[j+1] = temp;
//                   }
//               }
//           }
//           return num[len-1];
//       }

(2)选择排序

    public static void order(int[] number) {
        if (number == null || number.length < 2) return;

        int len = number.length;

        // 外层:确定第 k 个位置应该放哪个元素
        for (int k = 0; k < len - 1; k++) {
            int minIndex = k;  // 先假设 k 位置最小

            // 内层:在 k+1 到 len-1 中找到真正最小元素的下标
            for (int i = k + 1; i < len; i++) {
                if (number[i] < number[minIndex]) {
                    minIndex = i;
                }
            }

            // 每遍结束后,只交换一次
            if (minIndex != k) {
                int temp = number[k];
                number[k] = number[minIndex];
                number[minIndex] = temp;
            }
        }