zoukankan      html  css  js  c++  java
  • 排序之快速排序(2)

    这种快速排序的思路是:首先以a[start]为轴,不停得从数组的两端开始比较。从最右端开始,如果有比a[start]小的,那么赋值a[i];从最左端开始,如果有比a[start]大的,那么赋值a[j],以此往复,渐渐有序;注意的是递归跳出的条件,只有一个数就不需要排序,即start>=end
    
    #include<stdio.h>
    #include<stdlib.h>
    #define N 1000000
    int array[N];
    void init_array(int a[],int n);
    void print_array(int a[],int n);
    void quick_sort(int a[],int start,int end);
    void Quick_sort(int a[],int n);
    
    int main()
    {
     init_array(array,N);
     Quick_sort(array,N);
     print_array(array,N);
      
    } 
    
    void init_array(int a[],int n)
    {
     int i;
     for(i=0;i<n;i++)
      a[i]=rand()%1000; 
    }
    void print_array(int a[],int n)
    { int i;
     for(i=0;i<n;i++)
      printf("%d
    ",a[i]); 
    }
    void quick_sort(int a[],int start,int end)
    {
     int i,j,temp;
     if(start>=end) return; 
     i=start;
     j=end;
     temp=a[start];
     while(i<j)
     {
      while(i<j && a[j]>temp)
       j--;
      a[i]=a[j];
      while(i<j && a[i]<=temp)
       i++;
      a[j]=a[i];
     } 
     a[i]=temp;
     quick_sort(a,start,i-1);
     quick_sort(a,i+1,end); 
    }
    void Quick_sort(int a[],int n)
    {
     quick_sort(a,0,n-1);
    } 
  • 相关阅读:
    SQLite 基本使用
    SQLite 语法
    html5晋级之路-css介绍
    html5晋级之路-web storage
    html5晋级之路-元素语法
    html晋级之路-背景、实体
    ios-晋级之路 CocoaPods的使用
    如何在Mac OS X上安装 Ruby运行环境
    html5晋级之路-学习笔记表单
    html5晋级之路-学习笔记
  • 原文地址:https://www.cnblogs.com/wc1903036673/p/3499360.html
Copyright © 2011-2022 走看看