快速排序

举报
水坚石青 发表于 2021/10/30 00:20:55 2021/10/30
1.2k+ 0 0
【摘要】 public class QuickSort { public static void main(String args[]) { int a[] = {10,5,10,2}; System.out.println("this is quciksort:"); QuickSort(a, 0, a.length - 1); out...

      public class QuickSort
      {
     	public static void main(String args[])
      	{
     		int a[] = {10,5,10,2};
      		System.out.println("this is quciksort:");
      		QuickSort(a, 0, a.length - 1);
      		output(a);
      	}
     	public static void output(int a[])//输出
      	{
     		int i;
     		for(i = 0; i < a.length; i++)
      		{
      			System.out.print(a[i] + " ");
      		}
      		System.out.println();
      	}
     	public static void QuickSort(int a[], int low, int high)
      	{
     		if(low >= high)
      		{
     			return;
      		}
     		int l = low;
     		int h = high;
     		int now = a[low];//设置哨兵
     		while(l < h)
      		{
     			while(l < h && a[h] >= now)//右比较
      			{
      				h--;
      			}
     			while(l < h && a[l] <= now)//左比较
      			{
      				l++;
      			}
     			if(l < h)//交换
      			{
     				int temp = a[h];
      				a[h] = a[l];
      				a[l] = temp;
      			}
      		}
     		int temp = a[l];//换最后的一个值
      		a[l] = now;
      		a[low] = temp;
      		QuickSort(a, low, l - 1);//左递归
      		QuickSort(a, h + 1, high);//右 
      	}
      }
  
 

文章来源: blog.csdn.net,作者:水坚石青,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/helongqiang/article/details/78024406

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。