zoukankan      html  css  js  c++  java
  • 荷兰国旗问题

    package com.cisco.www.sort;

    public class NetherlandsFlag {
    public static int[] partition(int[] arr,int L, int R,int num){
    /**
    *
    */
    int less = L-1 ;
    int more =R+1;
    int cur = L;//使用index来进行遍历
    //current指针小于more指针
    while (cur<more){
    if(arr[cur]<num){
    //如果小于,就将小于区域右移一位,然后交换
    //就是把++less位置和cur位置交换一下,然后cur向后移动一位
    //当前数和小于区域的下一个数进行交换,然后小于区域扩一个位置,然后cur跳下一个
    swap(arr,++less,cur++);
    }else if(arr[cur]>num){
    //如果小于num,就将大于区域左移一位,然后交换
    //将--more和当前位置的数进行交换,即将大于区域的前一个位置的数进行交换
    swap(arr,--more,cur);
    }else {
    //如果当前数等于num的话,那么当前数不做任何操作,将当前指针向下移动
    cur++;
    }
    }
    //返回=num的区域
    return new int[]{less+1,more-1};
    }

    private static void swap(int[] arr, int i, int j) {
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] =temp;
    }
    }
  • 相关阅读:
    eclipse工具
    Tag
    JSP模版
    Eclipse断点调试
    JavaBean
    验证码设计
    在IE中提示404错误
    序列化与反序列化
    文件编码问题
    强类型,弱类型和推断类型
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/11037706.html
Copyright © 2011-2022 走看看