惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
V
Visual Studio Blog
小众软件
小众软件
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
T
Tor Project blog
Jina AI
Jina AI
GbyAI
GbyAI
C
Comments on: Blog
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
A
Arctic Wolf
有赞技术团队
有赞技术团队
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
Security Latest
Security Latest
Webroot Blog
Webroot Blog
C
Cisco Blogs
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
K
Kaspersky official blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
H
Hacker News: Front Page
D
Darknet – Hacking Tools, Hacker News & Cyber Security
D
Docker
P
Palo Alto Networks Blog
The Register - Security
The Register - Security
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - ________囧丶殇

django系列 - 安装和新建项目 SQL - 基础 javascript刷新父页面 SQL - 约束 C语言(8) - 反转单向链表 C语言(7) - 数据结构之单向链表 C语言(6) - 各种排序算法的比较 C语言(4) - 插入排序 C语言(3) - 冒泡排序 归并排序 C语言(2) - 从指针开始 C语言(1) - 开始之前 python实践 - 抓取网页中的图片和数据 python实践 - 下载文件 python补充(2) - 内置函数 python补充(1) python笔记(十) - 异常和文件处理 python笔记(九) - 类 part2 python笔记(八) - 类 part1 python笔记(七) - and和or
C语言(5) - 选择排序 快速排序
________囧丶殇 · 2009-06-09 · via 博客园 - ________囧丶殇

/*
选择排序
找出最小的元素,与第一个元素对换
再在剩下的元素中找出最小的与第二个对换
*/

#include 

"getData.h"void Selection(int *array)
{
    
int i=0;
    
while(i<ArraySize-1)
    {
        
int minval  = i;
        
int j ;
        
for(j=i+1;j<ArraySize;j++)
        {
            
if(array[j]<array[minval])
            {
                minval 
= j;
            }
        }
        
if(minval != i)
        {
            
int tmp = array[i];
            array[i] 
= array[minval];
            array[minval] 
= tmp;
        }
        i
++;
    }
}

/*
快速排序
选择一个枢轴,将枢轴两边的队列排序
递归此步骤,直到整个数列有序
*/
#include 
"getData.h"
int CountFlag = 0;
/*
从小到大排序
假设枢轴M,设置F指向低位,H指向高位
1。从高位开始扫描直到低位找出第一个小于枢轴的值和低位交换
2。从低位开始扫描直到高位找出第一个大于枢轴的值和高位交换
3。循环1,2直到有序
*/
int GetRan(int* array,int flow,int high)
{
    
int i=flow,j=high;
    
int ran;
    
int ranData;
    
    
//用随机数产生枢轴
    srand((unsigned)time(NULL));
    ran 
= flow+rand()%(high-flow+1);
    ranData 
= array[ran];array[ran] = array[i];/*
    //用最低位数产生枢轴
    ran = i;
    ranData = array[ran];
    
*/while(i<j)
    {
        
while(j>i&&array[j]>ranData)j--;
        array[i] 
= array[j];
        
while(i<j&&array[i]<ranData)i++;
        array[j] 
= array[i];
    }
    array[j] 
= ranData;
    
return j;
}
void Quick(int* array,int low,int high)
{
    
int ran;
    
if(low<high)
    {
        ran 
= GetRan(array,low,high);
        Quick(array,low,ran
-1);
        Quick(array,ran
+1,high);
        CountFlag
++;
    }

}