今天天气很好,写个快排练练手

最近有些懒,好久没写代码了,现在写个快排练练手吧。

public class QucikSort {
	//此处交换两个数
	public static void swap(int a[],int low,int high)
	{
		int temp=a[low];
		a[low]=a[high];
		a[high]=temp;

	}
	//分区,分成两部分
	public static int  partion(int a[],int low,int high)
	{
		swap(a,low,high);
		int cur=low;
		int index=low;
		while(a[cur]<a[high])
		{
			if(a[cur]<a[high])
			{
				a[index++]=a[cur];
			}
			cur++;
		}
		swap(a,index,high);
		return index;

	}
	public static void quicksort(int a[],int low,int high)
	{
		if(low<high)
		{
			int part=partion(a,low,high);
			quicksort(a,low,part-1);
			quicksort(a,part+1,high);

		}

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[]=new int[]{-2,3,4,-5,4,565,56};
		for(int i=0;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println();
		quicksort(a,0,a.length-1);
		for(int i=0;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}

	}

}

  

时间: 2024-11-08 02:47:47

今天天气很好,写个快排练练手的相关文章

用python写个快排

快排过程比较简单就直接上代码了: 1 #!/usr/bin/python3 2 3 def quik_sort(L, left, right): 4 if left <= right: 5 key = L[left] 6 i = left 7 j = right 8 while i < j: 9 while i < j and key <= L[j]: 10 j -= 1 11 L[i] = L[j] 12 while i < j and L[i] <= key: 13

用js写了个快排,还有优化的余地

看了一天别人的代码,换换思路,写个快排. 直接上代码,低估了,原理一直记得,本以为10分钟能搞定,但出现很多小bug,整了20多分钟. /** * Created by cdpmac on 15/5/15. */ var arr = [5, 3, 7, 4, 1, 9, 8, 6, 2]; quickSort(arr,0,arr.length-1); console.log(arr); function quickSort(arr,left,right){ if( left>=right){ r

hdu1157 快排

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1157 大意:排序,取中间数. PS:1.自己实现了下快排函数,也可以使用#include<algorithm>下的sort(a,a+n);函数,默认升序,若要降序or结构体排序可以增加第三个参数,声明排序规则. 2.在写这个快排的时候出现了很多问题,花了比较多的时间,对自己很不满意. 3.在这个while循环里写自减时,应该是j=high+1(分(low~p-1)和(p+1~high)),若不进行hi

Python的快排应有的样子

快排算法 ? 简单来说就是定一个位置然后,然后把比它小的数放左边,比他大的数放右边,这显然是一个递归的定义,根据这个思路很容易可以写出快排的代码 ? 快排是我学ACM路上第一个让我记住的代码,印象很深刻,以前学的是Pascal,写这个要写好长一串,但是因为和归并排序比起来还算短的,也就背下来了.好奇的我点开百科看python的快排代码,就看到了如下代码: #quick sort def quickSort(L, low, high): i = low j = high if i >= j: re

快排(再次实现)

刚刚CVTE笔试,想写个快排,居然没写出来.写出来.出来.来!!!简直了,打死自己 再实现一遍吧! #include <iostream> #include <stdio.h> void qsort(int first,int last,int* array,size_t size) { int left = first; int right = last; if (first >= last) return; int key = array[first]; int mid 

伤心的快排

#include<iostream> using namespace std; ///快排,百度数据挖掘,我面到终面 ///他们部门经理过来面我 ///数据挖掘的东西,兵来将挡,水来土掩 ////讲完项目于对互联网的理解 ///他说,最后写个快排吧~~~~ ////FUCK,我没写出来 ////嚓嚓嚓嚓嚓 int AdjustArray(int* a,int l,int r) { int x = a[l]; while(l<r) { while(l<r && a[r

灰帽百度快排是什么原理?

通过大数据分析,国内搜索引擎的用户占比量,百度,360.搜狗 是国内占比最高的三大搜索引擎,而百度的用户站整体的百分之80左右,所以国内做seo的企业基本都非常在意关键词在百度的排名高低,百度seo做多了,多数朋友经常会听到一个词,百度快排,那么很多朋友就会很好奇,百度快排是什么优化手段呢?为什么从来没有接触过呢?好的带着这些疑问,今天大表哥就和大家聊一聊,灰帽百度快排是什么原理? 灰帽seo百度快排的原理是什么? 灰帽seo是什么?:索引擎的优化方式分为那几种? 做seo优化的朋友一定可以很快

自己写快排模板与C++快排库函数使用

自己写快排模板与C++快排库函数使用 1.自己写快排模板 我理解的快速排序思想原理是: 假定待排序数组的范围是0~N 1.在一个数组中找一个数作为中心点M(可以使用固定位置的数,也可以随机的采用数组中的数) 2.把数组中所有的数与这个中心点进行比较.小于中心点的数移到中心点左边,大于中心点的数移到中心点右边. 3.经过上面两步可以得到由M点所划分的两个数组(一个数组都小于等于M,一个都大于等于M),再对这两个数组递归的进行1.2所示步骤,知道划分的数组大小为0: 快排思想实现的主要的重点难点在于

快速排序--QuickSort,看完五分彩开奖网平台搭建自己就能写出来的快排思路推演

快速五分彩开奖网平台搭建论坛:haozbbs.com Q1446595067排序(QuickSort)介绍首先发明者竟然敢给自己发明的算法叫做QuickSort,这个名字闪不闪亮?好比别的武功叫做六脉神剑.降龙十八掌,我这个叫做"天下无敌神功".别的排序算法都是按照特点来起的,你这个不是应该叫分块递归排序法吗?或者和希尔一样,叫做霍尔排序也可以啊,这么高调是要干啥啊?我给了他一次机会,特意去查了一下,这个名字并不是江湖朋友抬爱给的,就是发明者自己起的,社会社会...不过看完这篇博客,理