`
狂奔的蜗牛zyx
  • 浏览: 18840 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

几种常用算法(快速、选择、插入、迭代)

阅读更多
//利用Arrays带有的排序方法快速排序
	  public static void main(String[] args){   
          int[] a={5,4,2,4,9,1};   
          Arrays.sort(a);  //进行升序排序   
          for(int i: a){   
                 System.out.print(i);   
         }  
  } 
	//选择排序算法
	public static void main(String[] args){   
      int[] a={5,4,2,4,9,1}; 
      int[] b= selectSort(a);
      for (int i : b) {
		System.out.println(i);
      }
	}
    public static int[] selectSort(int[] args){//选择排序算法   
        for (int i=0;i<args.length-1 ;i++ ){   
               int min=i;   
               for (int j=i+1;j<args.length ;j++ ){   
                     if (args[min]>args[j]){   
                          min=j;   
                          }   
                 }   
                     if (min!=i){  
                     int temp=args[i];  
                     args[i]=args[min];  
                     args[min]=temp;          
                 }  
           }  
            return args;  
   } 
	
	//插入排序算法
	public static void main(String[] args){   
		  int[] a={5,4,2,4,9,1}; 
		  int[] b= insertSort(a);
		  for (int i : b) {
			System.out.println(i);
		  }
	}
    public static int[] insertSort(int[] args){   
        for(int i=1;i<args.length;i++){   
                for(int j=i;j>0;j--){   
                        if (args[j]<args[j-1]){   
                                int temp=args[j-1];  
                                args[j-1]=args[j];  
                               args[j]=temp;          
                       }else break;   
               }  
        }  
        return args;  
    }  



	//1 1 2 3 5 8 .....迭代
	public static void main(String[] args) {
		System.out.println(num(6));
	}
	public static int num(int n){
		if(n<=2)return 1;
		return num(n-2)+num(n-1);
	}


	// 产生随机数组    数组元素颠倒顺序
	public static void main(String[] args) {
		int [] a = new int[]{(int) (Math.random()*10),(int) (Math.random()*10),(int) (Math.random()*10),(int) (Math.random()*10),(int) (Math.random()*10)};
		for (int i : a) {
			System.out.println(i);
		}		
		int l=a.length;
		for (int i = 0; i < l/2; i++) {
			int temp=a[i];
			a[i]=a[l-1-i];
			a[l-1-i]=temp;
		}
		for (int i : a) {
			System.out.println(i);
		}
	}

	//去除重复元素,利用set集合特点	
	public static void main(String[] args) {
		int[] a={1,1,33,33,33,5,9,0,0};
		List<Integer> lista=new ArrayList<Integer>();
		for (int i : a) {
			lista.add(i);
		}
		Set<Integer> seta=new HashSet<Integer>();
		seta.addAll(lista);
		System.out.println(seta);
	}


	//去除字符串右边的空格
	public static void main(String[] args) {
		String str="   zxcvb1s s ";		
		System.out.println(str.trim());
		System.out.println(str.lastIndexOf(str.trim()));//返回指定子字符串在此字符串中最右边出现处的索引。
		String sss=str.substring(0,str.lastIndexOf(str.trim())+str.trim().length());
		System.out.println("--"+sss+"--");
	}
	//去除所有空格
	public static String del_space(String str){
		char[] str_old=str.toCharArray();
		StringBuffer str_new= new StringBuffer();
		int i=0;
		for (char c : str_old) {
			if (c !=' ') {
				str_new.append(c);
				i++;
			}
		}
		System.out.println(i);
		return str_new.toString();
	}	
}

分享到:
评论

相关推荐

    c#的几种典型算法

    c#的几种典型算法:插入排序、乘法表、迭代、公约、回文、计算器等

    C/C++常用算法手册.秦姣华(有详细书签).rar

    2.1.5 数据结构的几种存储方式 18 2.1.6 数据类型 19 2.1.7 常用的数据结构 20 2.1.8 选择合适的数据结构解决实际问题 21 2.2 线性表 21 2.2.1 什么是线性表 21 2.2.2 线性表的基本运算 22 2.3 顺序表结构 ...

    迭代加深搜索.zip

    常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...

    算法导论(part2)

    书中每一章都给出了一个算法、一种算法设计技术、一个应用领域或一个相关的主题。算法是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得懂。书中给出了230多幅图,说明各个算法的工作过程。...

    Sorting-Algorithms:该存储库包含几种排序算法及其优化形式

    该存储库包含以下几种排序算法,以及一些具有优化形式的算法。 选择排序 气泡排序 递归气泡排序 插入排序 递归插入排序 合并排序 迭代合并排序 快速排序 迭代快速排序 堆排序 计数排序 基数排序 桶分类 贝壳排序 ...

    算法导论(part1)

    书中每一章都给出了一个算法、一种算法设计技术、一个应用领域或一个相关的主题。算法是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得懂。书中给出了230多幅图,说明各个算法的工作过程。...

    java数据结构与算法第二版

    几种简单排序之间的比较 小结 问题 实验 编程作业 第4章 栈和队列 不同的结构类型 栈 队列 优先级队列 解析算术表达式 小结 问题 实验 编程作业 第5章 链表 链结点(Link) LinkList专题Applet ...

    Java数据结构和算法中文第二版

    几种简单排序之间的比较 小结 问题 实验 编程作业 第4章 栈和队列 不同的结构类型 栈 队列 优先级队列 解析算术表达式 小结 问题 实验 编程作业 第5章 链表 链结点(Link) LinkList专题Applet ...

    基于多邻域的车辆路径优化迭代局部搜索算法 (2009年)

    针对物流配送中的带有容量约束的车辆路径优化问题,提出了一...在国际通用的14个benchmark问题上进行仿真实验,结果验证了本文算法HILS的有效性和稳定性,与文献中的其他几种算法的比较结果表明,算法HILS的总体性能更优。

    Java数据结构和算法(第二版)

    几种简单排序之间的比较 小结 问题 实验 编程作业 第4章 栈和队列 不同的结构类型 栈 队列 优先级队列 解析算术表达式 小结 问题 实验 编程作业 第5章 链表 链结点(Link) LinkList专题Applet 单链表 查找和删除...

    Java数据结构和算法中文第二版(1)

    几种简单排序之间的比较 小结 问题 实验 编程作业 第4章 栈和队列 不同的结构类型 栈 队列 优先级队列 解析算术表达式 小结 问题 实验 编程作业 第5章 链表 链结点(Link) LinkList专题Applet...

    数据结构与算法研究(强烈推荐)

    对以下四种算法详细地进行了分析:插入排序、希尔排序、堆排序以及快速排序。堆排序平均情形运行时间的分析对于这一版来说是新的内容。本章末尾讨论了外部排序。 第8章讨论不相交集算法并证明其运行时间。这是短且...

    Java数据结构和算法中文第二版(2)

    几种简单排序之间的比较 小结 问题 实验 编程作业 第4章 栈和队列 不同的结构类型 栈 队列 优先级队列 解析算术表达式 小结 问题 实验 编程作业 第5章 链表 链结点(Link) LinkList专题Applet...

    传智播客扫地僧视频讲义源码

    20_信息系统框架集成第三方产品案例_几个重要的面向对象思想_传智扫地僧 21_作业 文档和源码 01_上一次课程回顾 02_数组指针语法梳理 03_函数指针语法梳理_传智扫地僧 04_函数指针做函数参数思想剖析_传智扫地僧 05_...

    matlab加速迭代法代码-sas-deconv:短期和稀疏反卷积(SaSD)的iPALM软件包

    这是一种加速的一阶方法,具有最佳收敛性,可以解决非凸优化问题。 我们将其与结合使用,以生成稀疏,健壮和可解释的激活图。 如有任何要求/反馈,请联系。 我们感谢,并感谢genconvdata.m和example.m使用的模拟内核...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows常用控件的使用、...

    C++课程题目及其答案

    2 排序算法:设计四种及以上的排序算法,如冒泡排序、选择排序、插入排序、折半排序、快速排序、希尔排序等。 二、 设计内容及要求: 每位同学任选一个题目,单独完成。 对所选的题目,要有功能分析,编写程序,...

Global site tag (gtag.js) - Google Analytics