几种排序算法


public class Bubble {

	public static void main(String[] args) {
		int[] a = {38, 17, 16, 16, 7, 31, 39, 32, 2, 11};
		for(int i = 0;i<a.length;i++){
			for(int j=i+1;j<a.length;j++){
				if(a[j]<a[i]){
					exchange(a,i,j);	
				}
			}
		}
		for(Integer x:a){
			System.out.print(" "+x);
		}
	}
	
	public static void exchange(int[] array,int i, int j){
		if(i == j){return;}
		int temp = array[i];
		array[i] = array[j];
		array[j] = temp;
	}
}

  

public class Insert {

	public static void main(String[] args) {
		int[] a = {38, 17, 16, 16, 7, 31, 39, 32, 2, 11};
		for(int i = 1;i<a.length;i++){
			int temp = a[i];
			int j = i;
			for(;j>0;j--){
				if(a[j-1]>temp){
					a[j] = a[j-1];
				}else{
					break;
				}
			}
			a[j] = temp;
		}
		for(Integer x:a){
			System.out.print(" "+x);
		}
	}
}

  

public class Quick {

	public static void main(String[] args) {
		int[] a = {41,59,43,26,63,30,29,26,42};
		
		sort(a,0,a.length-1);
		
		for(Integer x:a){
			System.out.print(" "+x);
		}
	}


	private static void sort(int[] array, int lo, int hi) {
		if (lo >= hi) {
			return;
		}

		int toFinal = array[lo];
		int leftIdx = lo;
		int rightIdx = hi;

		int i = lo + 1;

		while (i <= rightIdx) {
			if (array[i] == toFinal) {
				i++;
			} else if (array[i] < toFinal) {
				exchange(array, leftIdx++, i++);
			} else {
				exchange(array, rightIdx--, i);
			}
		}

		sort(array, lo, leftIdx - 1);
		sort(array, rightIdx + 1, hi);
	}
	
	public static void exchange(int[] array,int i, int j){
		if(i == j){return;}
		int temp = array[i];
		array[i] = array[j];
		array[j] = temp;
	}
}

  

public class Select {

	public static void main(String[] args) {
		int[] a = {38, 17, 16, 16, 7, 31, 39, 32, 2, 11};
		for(int i = 0;i<a.length;i++){
			int selected = i;
			for(int j=i+1;j<a.length;j++){
				if(a[j]<a[selected]){
					selected = j;
				}
			}
			
		exchange(a,i,selected);	
		}
		for(Integer x:a){
			System.out.print(" "+x);
		}
	}
	
	public static void exchange(int[] array,int i, int j){
		if(i == j){return;}
		int temp = array[i];
		array[i] = array[j];
		array[j] = temp;
	}

}

  

优质内容筛选与推荐>>
1、xmake新增对Qt编译环境支持
2、vs中的各种快捷键
3、SQLServer 2008数据库查看死锁、堵塞的SQL语句
4、xmake入门,构建项目原来可以如此简单
5、VBS使用Scripting.Dictionary字典对象


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn