文档章节

【数据结构】快速排序算法(Java实现)

boluo1230
 boluo1230
发布于 2017/07/28 22:45
字数 212
阅读 25
收藏 0

package com.paixu;

class shuzu1 {
	int length;
	int r[] = new int[100];

	// 创建数组
	public void create(int a[]) {
		for (int i = 0; i <= length; i++) {
			r[i] = a[i];

		}

	}

	// 展示数组
	public void display() {
		System.out.println("这里是展示数组:");
		for (int i = 1; i <= length; i++) {
			System.out.print(r[i] + " ");

		}
		System.out.println();
		System.out.println();
	}
	
	public void swap(int low,int high){
		int temp;
		temp = r[low];
		r[low] = r[high];
		r[high] = temp;
		System.out.println("此时位置"+low+"和位置"+high+"交换");	
		display();
	}
	
	//快速排序
	public void Qsort(int low,int high){
		int pivot;
		
		if (low<high){
			pivot = Partition(low, high);
			System.out.println("此时pivot为:"+pivot);
			Qsort(low, pivot-1);
			Qsort(pivot+1,high);
		}
	}
	
	int Partition(int low,int high){
		int pivotkey = r[low];
		while (low<high){
			while(low<high&&r[high]>=pivotkey){
				high--;
			}
			swap(low,high);
			while (low<high&&r[low]<=pivotkey){
				low++;
			}
			swap(low,high);
		}
		System.out.println("-------------------");
		return low;
	}
	
}
public class kuaipai {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		shuzu1 sz = new shuzu1();
		sz.length = 10;

		int a[] = { 0, 5, 8, 9, 7, 22, 20, 16, 200, 65, 98 };
		sz.create(a);
		sz.display();
	    sz.Qsort(1, 10);
		sz.display();


	}

}

 

© 著作权归作者所有

boluo1230
粉丝 0
博文 26
码字总数 9458
作品 0
哈尔滨
私信 提问
算法设计:两种快速排序代码实现

快速排序是一种高效且使用广泛的排序算法,在很多语言的标准库中自带的排序都是快速排序,所以我们也有必要了解快排的原理以及其实现方法。 快排的大致思想 快速排序实现的重点在于数组的拆分...

Sunrise_1018
2018/11/23
0
0
【二叉搜索树】简单二叉搜索树的Java实现,还没添加很多功能

正文之前 重温算法,今天看了下《算法导论》,二叉搜索树的内容,总算没有以前看的时候的那种晦涩感了。。。明天继续加油!!!今天大概用Java实现了下二叉搜索树的建立和输出,至于检索这个...

HustWolf
2018/07/12
0
0
可视化的数据结构和算法

还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下...

戴威
2011/05/12
1K
5
JAVA中运用数组的四种排序方法

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。 冒泡法是运用遍历数组进...

IceRainYWC
2014/03/17
29
0
JAVA中运用数组的四种排序方法

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。 冒泡法是运用遍历数组进...

闫三
2012/05/08
63
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部