各种内部排序算法!

原创 2007年09月22日 15:20:00

各种内部排序算法!!

 

//排序算法
//sunboy 2007.9.19
#include <iostream>
using namespace std;
#define LEN 8
void Print(int a[])
...{  
    
int i;
    
for(i=0;i<LEN;i++)
        cout
<<a[i]<<" ";
    cout
<<endl;
}

void swap(int &a,int &b)
...{
    
int tmp;
    tmp
=a;
    a
=b;
    b
=tmp;
}

int Partion(int arr[],int low,int high)
...{
    
int tmp=arr[low];
    
while(low<high)
    
...{
        
while(low<high&&arr[high]>tmp)
            high
--;
        arr[low]
=arr[high];
        
while(low<high&&arr[low]<tmp)
            low
++;
        arr[high]
=arr[low];
    }

    arr[low]
=tmp;
    
    
return low;
}

void QSort(int arr[],int low,int high)
...{int p;
if(low<high)
...{
    p
=Partion(arr,low,high);
    QSort(arr,low,p
-1);
    QSort(arr,p
+1,high);
}

}
//快速排序
void Insert_Sort(int arr[])
...{
    
int i,j,tmp;
    
for(i=1;i<LEN;i++)
    
...{
        
if(arr[i]>=arr[i-1])continue;
        tmp
=arr[i];
        
for(j=i-1;tmp<arr[j]&&j>-1;j--)
            arr[j
+1]=arr[j];
        arr[j
+1]=tmp;
        
    }

}
//插入排序
int  Min_Select(int arr[],int begin)
...{
    
int i,flag;
    
int min=0xfffffff;
    
for(i=begin;i<LEN;i++)
        
if(arr[i]<min)
        
...{
            min
=arr[i];
            flag
=i;
        }

        
return flag;
}


void Bible_Sort(int arr[])
...{
    
int i,j;
    
for(i=1;i<LEN;i++)
        
for(j=0;j<LEN-i;j++)
        
...{
            
if(arr[j]>arr[j+1])
                swap(arr[j],arr[j
+1]);
        }

}
//冒泡排序
void Select_Sort(int arr[])
...{
   
int i,j;
   
for(i=0;i<LEN-1;i++)
   
...{
       j
=Min_Select(arr,i);
       
if(i!=j)
         swap(arr[i],arr[j]);
   }

}
//选择排序
void Shell_Sort(int arr[])
...{
    
}

void Merge (int arr[],int low,int mid,int high)
...{
    
int i,b[8];
    
int ind1=low;
    
int ind2=mid+1;
    
for(i=low;i<=high;i++)
        b[i]
=arr[i];
    
for(i=low;i<=high&&ind1<=mid&&ind2<=high;i++)
        
if(b[ind1]<b[ind2])
            arr[i]
=b[ind1++];
        
else 
            arr[i]
=b[ind2++];
        
    
while(ind1<=mid)
        arr[i
++]=b[ind1++];
    
while(ind2<=high)
        arr[i
++]=b[ind2++];
        
}

void Merge_Sort(int arr[],int low,int high)
...{
    
int i,brr[8];
    
for(i=0;i<8;i++)
        brr[i]
=arr[i];
    
int mid;
    
if(low<high)
    
...{
        mid
=(low+high)/2;
        Merge_Sort(arr,low,mid);
        Merge_Sort(arr,mid
+1,high);
        Merge(arr,low,mid,high);
    }

}
//归并排序


int main()
...{
    
int arr[8]=...{2,3,5,6,4,1,0,10};
    
//QSort(arr,0,7);
    
//Insert_Sort(arr);
    
//Bible_Sort(arr);
    
//Select_Sort(arr);
    
//Merge_Sort(arr,0,7);
    Print(arr);
    
return 0;
}

 

各种内部排序算法的比较和应用

一、内部排序算法的比较 1.内部排序主要有插入排序,交换排序,选择排序,归并排序和基数排序。 其中插入排序的基本思想在于每次将一个待排序的记录按其关键字的大小插入到前面已经排好的序列中。实现算法主要有...
  • aaronkwo
  • aaronkwo
  • 2017年05月06日 20:23
  • 882

各种内部排序算法的比较和选择

各种内部排序算法比较和选择
  • u011784495
  • u011784495
  • 2017年05月05日 01:59
  • 255

9种常见内部排序算法的性能比较

在写完这9种常见的内部排序算法后总觉得需要把它们拿出来好好比较一番,看看各个算法的性能优劣。 我们先来看看各个排序算法的理论性能,再看实际性能。...
  • Thinkpad4180NC5
  • Thinkpad4180NC5
  • 2014年11月15日 23:01
  • 2509

【数据结构与算法】内部排序总结(附各种排序算法源码)

这篇博文我们简要地总结下各种内部排序方法。 这10种排序算法中,前面7种属于建立在“比较”基础上的排序算法,通过决策树已经证明,任何基于比较进行的排序算法的时 间复杂度不可能再优于O(n*lo...
  • mmc_maodun
  • mmc_maodun
  • 2014年03月11日 00:03
  • 5115

数据结构课程设计---内部排序算法的性能分析

内部排序算法的性能分析  一  需求分析 1) 对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; 2) 排序表中数据数目不小于100 ,表中数据随机产生,至少用5组不...
  • xuan_xinya
  • xuan_xinya
  • 2013年04月01日 19:05
  • 1963

常用的内部排序方法-比较排序

所谓的内排序是指所有的数据已经读入内存,在内存中进行排序的算法。排序过程中不需要对磁盘进行读写。同时,内排序也一般假定所有用到的辅助空间也可以直接存在于内存中。与之对应地,另一类排序称作外排序,即内存...
  • wl044090432
  • wl044090432
  • 2017年01月22日 14:58
  • 888

内部排序算法比较(超详解)

一、题目描述 通过随机数据比较各排序算法的关键字比较次数和关键字移动次数,以 及执行时间,取得直观感受。 二、设计要求一、需求分析 实现各排序算法,分别进行以下各组比较,并进行总结。 一...
  • u011446963
  • u011446963
  • 2015年06月14日 11:42
  • 2788

八种常用内部排序算法总结

在公司实习了,由于公司的性质,以后的工作中用到算法&数据结构的知识可能会很少,很想把以前学的数据结构&算法的知识系统的回忆一下,但由于时间的原因,再加上我一直都很喜欢排序算法的思想。近期主要就排序这个...
  • Thinker_YU
  • Thinker_YU
  • 2014年10月18日 22:31
  • 3755

各种排序算法的实现,总结与比较

(一)排序基本概念:  根据排序过程中待排序文件存放的位置不同,可以把排序分为内部和外部排序两大类。在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序;在排序过程中,只有...
  • u010177286
  • u010177286
  • 2015年07月23日 17:29
  • 1304

各种排序算法比较源代码

// testsort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include int cp[2500];int rplist[2500] ={1097,0...
  • l1t
  • l1t
  • 2005年04月04日 07:45
  • 1835
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:各种内部排序算法!
举报原因:
原因补充:

(最多只允许输入30个字)