排序方法的比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.当记录规模较大时:快速排序