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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - powerlc

mobile WareHouse 项目笔记1 moss 与SAP iView web part 整合 一个合格的程序员该做的事情 IT职场健康杀手与应对宝典 (虽然是IT职场,可是对于常上网的ggmm也是很有用的) 常用CASE工具介绍 ZZ 北京知名百货公司宰客内幕 开发工程师人生之路 (推荐) Asp.net中在datagrid中放checkbox控件的全选 - powerlc - 博客园 C#修饰符 c++程序员的常用工具集 10条有益的涉世建议ZZ 算术运算的溢出问题 计算机中的原码、反码和补码 用一条SQL完成数据表的行统计 C#的代理和事件 Repeater导出为excel格式 算法 ZZ 约瑟夫c++ ZZ JavaScript实用的一些技巧 - powerlc - 博客园
常见算法基础之排序
powerlc · 2005-08-26 · via 博客园 - powerlc

排序:是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。(本帖只讨论内部排序)
 常见排序:1.插入排序:直接插入,二分插入,希尔排序。
           2.交换排序:冒泡排序,快速排序。
           3.选择排序:直接选择,竞赛树,堆排序。
           4.归并排序:二路,多路。
************************************************************
1.插入排序:
1.1直接插入:
             1.1.1顺序存储
        void InsertSorting(int R[],int n)
        {
                   for(int i=1;i<n;i++)
           {
                     int temp=R[i];
                     int j=i-1;
                     while((j>=0)&&(temp<R[j]))
             {
                       R[j+1]=R[i];
                       j--;
                     }
                    R[j+1]=temp;
                    }
                 }
             1.1.2链式存储
                void InsertSorting(List l)
                {
                 node *h,*s,*p,*q,*last;
                 h=l.h;
                 q=h;
                 p=h->next;
                 last=p->next;
                 for(;p->next!=null;last=last->next)
                 {
                   while((q!=p)&&(p->data>q->data))
                   {
                    s=q;
                    q=q->next; 
                   }
                   if(q!=p)
                   {
                     s->next=p;
                     p->next=q;
                   }
                   p=last;
                  }
                 }

1.2.二分插入:
               1.2顺序存储
               void BInsertSort(int R[],int n)
              {   
                for(int i=1;i<n;i++)
                {
                  left=0;  right=i-1;
                  int temp=R[i];
                  while(left<=right)
                  {
                    int middle=(left+right)/2;
                    if(temp<R[middle])
                       right=middle-1;
                    else
                       left=middle+1;
                   }
                   for(int j=i-1;j>=left;j--)
                       R[j+1]=R[j];
                   R[left]=temp;
                  }
                 }

1.3shell:
               1.3略

2.交换排序
2.1冒泡排序          
              void BubbleSorting(int R[],int n)
             {
              for(i=1;i<n;i++)
              {
               bool change=0;
               for(int j=n-1;j<=n;j--)
               {
                if(R[j]<R[j-1])
                {
                 int temp=R[j];
                 R[j]=R[j-1];
                 R[j-1]=temp;
                 change=1;
                }
                 if(!change)
                   return;
                }
               }
2.2快速排序
              void QuickSort(int R[],int left,int right)
             {
               int i=left; int j=right;
               int temp=R[i];
               while(i<j)
               {
                 while((R[j]>temp)&&(i<j))
                    j--;
                 if(i<j)
                   R[i]=R[j];
                 while((R[i]<temp)&&(i<j))
                    i++;
                 if(i<j)
                    R[j]=R[i];
               }
               R[i]=temp;
              if(left<i-1)    QuickSort(R,left, i-1);
              if(right>i+1)   QuickSort(R,i=1, right);
             }