当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

快速排序

发表于: 2013-01-29   作者:dreamoftch   来源:转载   浏览次数:
摘要: static int[] arr={49, 38, 65, 97, 76, 13, 27, 55, 24, 35,38}; public static void sort(int i,int j){ int begin=i,end=j; if(end<=begin){ return; } int key=arr[begin]; while(en
	static int[] arr={49, 38, 65, 97, 76, 13, 27, 55, 24, 35,38};
	public static void sort(int i,int j){
		int begin=i,end=j;
		if(end<=begin){
			return;
		}
		int key=arr[begin];		
		while(end>begin){
			while(end>begin){
				if(arr[end]<key){
					arr[begin] = arr[end];
					begin++;
					break;
				}
				end--;
			}
			while(end>begin){
				if(arr[begin]>key){
					arr[end]=arr[begin];
					end--;
					break;
				}
				begin++;
			}
		}
		arr[begin]=key;
		if(begin>i){
			sort(i,begin-1);
		}
		if(j>begin){
			sort(begin+1,j);
		}
	}

 

 

自己实现栈(先进后出):

 

package com.tch.test;

public class MyStack<T> {
	/**
	 * 节点类
	 */
	class Node<E>{
		private T ele;//节点保存的数据
		private Node<E> next;//下一个节点
		public Node(T ele,Node<E> next){
			this.ele = ele;
			this.next = next;
		}
		public T getEle() {
			return ele;
		}
		public Node<E> getNext() {
			return next;
		}
	}
	private Node<T> top;
	public void push(T ele){
		top = new Node<T>(ele,top);//添加元素的时候,将新添加的元素作为top元素,其next元素指向之前的top元素
	} 
	public T pop(){
		if(top==null){
			return null;
		}
		T result = top.getEle();
		top = top.getNext();
		return result;
	}
	/**
	 * 是否还有元素
	 */
	public boolean hasElement(){
		return top != null;
	}
	public static void main(String[] args) {
		MyStack<String> stack = new MyStack<String>();
		for(String s:"this is a string".split(" ")){
			stack.push(s);
		}
		while(stack.hasElement()){
			System.out.println("element : "+stack.pop());
		}
	}
}

 

 

快速排序

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
#include<stdio.h> int partition(int a[],int left,int right) { int i=left; int j=right;
高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名
转载http://158067568.iteye.com/blog/914049 快排是分治法的一个应用,快排主要是通过一个设定枢轴
. package com.cdl.algorithem; import java.util.Arrays; import java.util.Random; /** * 参考:&l
快速排序: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键
快速排序本质上是把一个数组分为两个数组,然后递归调用自身来为每一个子数组进行快速排序来实现的
快速排序:快排是一种不稳定的算法,其平均时间复杂度为O(nlgn),最坏为O(n^2)。 设当前待排序的无
《算法导论》第七章----快速排序(代码实现+部分练习+部分证明) 快速排序,对于n个数的输入数组,
快速排序 快速排序(Quick Sort)是冒泡排序的一种改进算法   基本思想:在当前的排序序列(K1,K2
快速排序 Quicksort is a fast sorting algorithm, which is used not only for educational purpos
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号