规范/约定

哨兵
左小右大

贪心算法

只在乎苟且,不看诗和远方

gnomesort

紧邻的逆序

image.png

  1. private static void gnomeSort(int[] arr) {
  2. for (int i = 1; i < arr.length; ) {
  3. if (i < 1 || arr[i - 1] <= arr[i]) {
  4. // 顺序向后执行
  5. i++;
  6. } else {
  7. // 逆序交换
  8. swap(arr, i - 1, i);
  9. // 向前检查是否有逆序对
  10. i--;
  11. }
  12. }
  13. }
  14. private static void swap(int[] arr, int i, int j) {
  15. int temp = arr[i];
  16. arr[i] = arr[j];
  17. arr[j] = temp;
  18. }