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

    快速排序(quick sorting 又称 划分排序),是对气泡排序的改进。原理: 从待排序区间(a[0]到a[n-1])选取第一个为基准元素。通过从两端向中间顺序进行比较和交换,使前面单元中只包含比 基准元素小的数。....
            static void QSort(int[] arr, int s, int e) {
               
                
    int i = s, j = e + 1;
                
    int t = arr[s];
                
    do {
                    
    do i++while(arr[i]<t && i<e );
                    
    do j--while(arr[j]>t && j>s);
              if (i < j) {
                        Swap(ref arr[i],ref arr[j]);
                    }
                } 
    while (i < j);

                Swap(
    ref arr[s], ref arr[j]);    //一次比较完成 (基准 与 j 位置的元素交换)

                
    if(s<j-1) QSort(arr, s, j - 1);
                
    if(j+1<e) QSort(arr, j+1,e );
            }

            
    static void Swap(ref int x,ref int y)
            {
                
    int t = x;
                x 
    = y;
                y 
    = t;
            }

      昨天去面试一家垃圾公司,出了道题,实现快速排序,升降序。居然忘了怎么做。fuck.

  • 相关阅读:
    XSS练习小游戏和答案参考
    nxlog以syslog方式发送日志
    Hydra—密码爆破神器
    syslog服务器配置笔记
    信息安全工具汇总整理
    nmap使用指南
    Cleaner, more elegant, and harder to recognize (msdn blog)
    Golang 中的坑 一
    Concurrency Is Not Parallelism (Rob pike)
    golang sql database drivers
  • 原文地址:https://www.cnblogs.com/wucg/p/1774829.html
Copyright © 2011-2022 走看看