排序方法的比较

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验5排序方法的比较

实验目的

1.熟练掌握常用的内排序方法

2.对排序方法加以比较

实验内容

1.分别用插入排序法、快速排序法、选择排序法对一组或多组数据进行排序

2.分析各算法的适用环境

对数组{9,2,8,2,3,2,4,10,34,5}进行排序

插入排序如下所示:

#include

using namespace std;

void InsertSort(intarr[], int length)

{

int temp;

for (inti = 1; i< length; ++i)

{

temp = arr[i];

int j = i - 1;

while (j >= 0 && temp

{

arr[j + 1] = arr[j]; }

arr[j + 1] = temp; }}

intmain()

{

intarr[10] = {9, 2, 8, 2, 3, 2, 4, 10, 34, 5}; InsertSort(arr, 10);

for (inti = 0; i< 10; ++i)

{

cout<

cout<

return 0;}

快速排序如下所示:

#include

using namespace std;

void quickSort(int a[],int,int);

int main()

{

int array[]={9,2,8,2,3,2,4,10,34,5},k;

int len=sizeof(array)/sizeof(int);

cout<<"The orginal arrayare:"<

cout<

cout<

quickSort(array,0,len-1);

cout<<"The sorted arrayare:"<

cout<

cout<

system("pause");

return 0;}

void quickSort(int s[],intl,int r)

{

if(l

{

inti=l, j=r,x=s[l];

while(i

{

while(i < j && s[j]>= x)

j--;

if(i < j)

s[i++] = s[j];

while(i < j && s[i]< x)

i++;

if(i < j)

s[j--] = s[i]; }

s[i] = x;

quickSort(s, l, i - 1);

quickSort(s, i + 1, r); } }

选择排序法如下所示:

#include

using namespace std;

intmain()

{

intnum[10]={9,2,8,2,3,2,4,10,34,5}; for (int m=0;m<10;m++)

{

cout<

for (inti=0;i<10;i++)

{

int pos = i;

for (int j=i;j<10;j++)

{

if (num[pos]>num[j])

{

pos=j;}}

int tem;

tem=num[pos];

num[pos]=num[i];

num[i]=tem;}

for(int m=0;m<10;m++)

{

cout<

return 0;}

不同条件下,排序方法的选择

1.当记录规模较小时:插入排序、选择排序

2.若文件初始状态基本有序(指正序):插入排序

3.当记录规模较大时:快速排序

相关文档
最新文档