zoukankan      html  css  js  c++  java
  • 不会陷入死循环的快速排序

    static void quick_sort(int[] s ,int l, int r)
            {
                int i = l, j = r, t, x = s[l];
                while (j > i)
                {
                    
                   
                        while (s[j] >= x && i <j)
                        {
                            j--;
                        }
                        
                        while (s[i] <= x && i<j)
                        {
                            i++; 
                        }
                        if (j > i)
                        {
                            t=s[i];
                            s[i] = s[j];
                            s[j] = t;
                        } 
                     
                }
    
                s[l] = s[i];
                s[i] = x;
                //Console.WriteLine(string.Join(",",s));
                if(i>l)
                    quick_sort(s, l, i - 1);
                if(j<r)
                    quick_sort(s, i + 1, r);
                Console.WriteLine(string.Join(",",s));
                
            }

    调用方式

     int[] array = { 6, 1, 2, 7, 9, 3, 4, 5, 10, 8 };
                int index=4;
                int t = array[index];
                quick_sort(array, 0, array.Length-1);
  • 相关阅读:
    Oracle函数题
    多态
    继承
    封装
    属性和修饰符
    方法重载
    构造方法
    类与实例
    SQL Server 2005 To Oracle
    Toad for Oracle 使用文档
  • 原文地址:https://www.cnblogs.com/heye/p/4467632.html
Copyright © 2011-2022 走看看