zoukankan      html  css  js  c++  java
  • 快速排序算法

    参考引用:排序--快速排序(https://zhuanlan.zhihu.com/p/93129029)

    void QuickSort(R[], int lo, int hi)
    {
        将lo, hi用i, j两个副本进行拷贝(**
        声明基准;
        if(划分长度大于等于2,即hi > lo)
        {
            取基准为左端端点;//都可
            当hi 不等于 lo时循环;
                当hi > lo且R[hi] > temp时循环;
                    hi--(继续往中间靠;
                R[lo] = R[hi];//发现小于基准的替换将其替换到左半区
                当lo < hi且R[lo] < temp时循环;
                    lo++(继续往中间靠;
                R[hi] = R[lo];//发现大于基准的将其替换到右半区
            在hi,lo重合处放基准;//数据平衡,循环里有一个数据是直接被覆盖的,就是基准,现在将其添加回数组中
            QuickSort(R[], lo, i - 1);
            QuickSort(R[], i + 1, hi);//递归继续进行快排
            //要是前面没有进行副本拷贝在这里进行递归操作时就不太好判断边界了。
        }
    }
    #include <iostream>
    using namespace std;
    int BubbleSort()
    {
    	return 0;
    }
    
    int QSort(int left, int right, int arr[])
    {
    	if (left >= right)
    	{
    		return 0;
    	}
    
    	int flag = arr[right];
    	int i = left;
    	int j = right;
    	while (i < j )
    	{
    		while ((arr[i] <= flag) && i< j)
    			i++;
    		arr[j] = arr[i];
    		while((arr[j] > flag)&& i< j)
    			j--;
    		arr[i] = arr[j];
    	}
    	arr[i] = flag;
    	QSort(left, i-1, arr);
    	QSort(i+1, right, arr);
    		
    	return 0;
    }
    int main()
    {
    	const int size = 11;
    	int arr[size] = { 1,8,9,0,5,4,6,3,2,7,8 };
    	QSort(0, 10, arr);
    	for (int i = 0; i < size; i++)
    	{
    		cout << arr[i];
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    Vue.js 父子组件间传递值
    Vue.js 单选绑定
    Vue.js 的v-for, v-html v-bind, v-show 实例
    Vue.js 表单input绑定
    Bootstrap tab
    Think PHP-- 笔记2
    MySql 修改登陆规则
    Think PHP--有趣的框架
    PHPStorm的xdebug配置
    伪类选择器
  • 原文地址:https://www.cnblogs.com/hitzzq/p/13361025.html
Copyright © 2011-2022 走看看