zoukankan      html  css  js  c++  java
  • k个有序序列排序找出融合全部类别的最小范围





    import
    java.util.*; //import java.util.List; public class Search { private List<Variable> m_data = new ArrayList<Variable>(); private Variable temp = null;// = new Variable(); public Search(int[] m,int label) { for(int i = 0;i < m.length; i++) { Variable temp = new Variable(m[i],label); // temp.number = m[i]; // temp.label = label; m_data.add(temp); } } public int size() { return m_data.size(); } public Search merge(Search a,Search b) { this.m_data.addAll(a.m_data); this.m_data.addAll(b.m_data); //sort all elements for(int i = 0;i < m_data.size()-1; i++) for(int j = i+1; j < m_data.size(); j++) if(m_data.get(i).number > m_data.get(j).number) { swap(m_data.get(i),m_data.get(j)); } return this; } public void swap(Variable a,Variable b) { int number = a.number,label = a.label; a.number = b.number; a.label = b.label; b.number = number; b.label = label; } public void PrintLink() { for(int i = 0; i < m_data.size(); i++) System.out.print(m_data.get(i).number +" "); System.out.print(" "); for(int i = 0; i < m_data.size(); i++) System.out.print(m_data.get(i).label +" "); } public Search() { this.temp = null; this.m_data = null; } public void findsaml() { int sub = 0,coord_start = 0,coord_end = 0; boolean [] cond ={false,false,false,false}; for(int i = 0; i < m_data.size()-2; i++) { //cond[m_data.get(i).label] = true; int start = i; //sub = 0; for(int j = i; j < m_data.size(); j++) { cond[m_data.get(j).label] = true; if(cond[1] == true && cond[2] == true && cond[3] == true) { int temp = m_data.get(j).number - m_data.get(start).number; if(sub == 0) { coord_end = m_data.get(j).number; coord_start = m_data.get(start).number; sub = temp; } else if(temp < sub) { coord_end = m_data.get(j).number; coord_start = m_data.get(start).number; sub = coord_end - coord_start; } //j = start + 1; cond[1] = false; cond[2] = false; cond[3] = false; //start = j; break; } } } System.out.print("(" + coord_start +"," + coord_end +")"); } // public Variable[] addelements(Variable[] linkedlist,Variable[] link) { // // // return ; // } // public static void main(String args[]) { int[] a = {5,8,15,25,36}; int[] b = {0,4,18,50}; int[] c = {3,7,20,30,45}; Search s_1 = new Search(a,1); //System.out.println(s_1.list_size()); Search s_2 = new Search(b,2); //System.out.println(s_2.list_size()); Search s_3 = new Search(c,3); //System.out.println(s_3.list_size()); s_1.merge(s_2, s_3); //s_1.PrintLink(); s_1.findsaml(); //System.out.println(s_1.size()); } } class Variable { int number; int label; public Variable(int number,int label) { this.number = number; this.label = label; } }
  • 相关阅读:
    c# PrintDocument 设置自定义纸张大小的示例
    C#获取本地打印机列表,并将指定打印机设置为默认打印机
    水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size)
    c#打印机设置,取得打印机列表及相应打印机的所有纸张格式
    在C#中设置打印机纸张大小
    打印grid
    获取List集合中最大值的方法
    mysql使用索引优化查询效率
    mysql数据库中标的key的含义
    mysql数据库添加索引优化查询效率
  • 原文地址:https://www.cnblogs.com/kanwan/p/3494286.html
Copyright © 2011-2022 走看看