程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++快速排序II(另一種快速排序)

C++快速排序II(另一種快速排序)

編輯:C++入門知識

 

                                                                                                                                                                                     另一種C++快速排序

// 快速排序II.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include<iostream>

#define N 100

using namespace std;

double a[N];

int qartition(double *a,int f,int t)

{

    double x = a[t];

  int i = f-1,j=f;

  while(j<t)

  {

   if(a[j]<=x)

   {

    i++;

    double temp = a[i];

    a[i]=a[j];

    a[j]=temp;

   }

   j++;

  }

  double temp = a[t];

  a[t]=a[i+1];

  a[i+1]=temp;

  return i+1;

}

void fast_sortII(double *a,int begin,int end)

{

   if(begin<end)

   {

    int q  = qartition(a,begin,end);

    fast_sortII(a,begin,q-1);

    fast_sortII(a,q+1,end);

   }

}

 

int _tmain(int argc, _TCHAR* argv[])

{

  int cases;

    cout<<"請輸入需要排序的案例個數:"<<endl;

    cin>>cases;

    while(cases--)

    {

        memset(a,0.0,sizeof(a));

        int n;

        cout<<"請輸入需要排序的元素的個數:"<<endl;

        cin>>n;

        cout<<"請輸入需要排序的元素:"<<endl;

        int i = 0;

        for(i=0;i<n;i++)

        {

              cin>>a[i];

        }

        cout<<"排序前:"<<endl;

        for(i=0;i<n;i++)

       {

              cout<<a[i]<<" ";

       }

       cout<<endl;

       fast_sortII(a,0,n-1);

       cout<<"排序後:"<<endl;

       for(i=0;i<n;i++)

       {

              cout<<a[i]<<" ";

       }

      cout<<endl;

   }

   system("pause");

 return 0;

}

 

 

摘自 heyongluoyao8的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved