一、实验目的
熟悉并掌握各种排序算法;
二、实验内容
1.插入排序算法实现,包括直接插入排序、折半插入排序及希尔排序;
2.交换排序算法实现,包括冒泡排序、快速排序;
3.选择排序算法实现,包括简单选择排序、堆排序;
三、实验环境
Dev C++
四、程序分析与实验结果
#include <iostream>
using namespace std;
void InsertSort(int R[], int n) {
if (R == NULL || n <= 0)
return;
int i, j, temp;
cout<<"直接插入排序为:"<<endl;
for (i = 1; i < n; ++i) {
temp = R[i];
j = i - 1;
while (j >= 0 && temp < R[j]) {
R[j + 1] = R[j];
--j;
}
R[j + 1] = temp;
for (int k = 0; k < n; k++)
cout << R[k] << " ";
cout << endl;
}
cout << endl;
}
void binaryInsertSort(int R[], int n) {
if (R == NULL || n <= 0)
return;
int i, j, mid, low, high, temp;
cout <<endl<< "折半插入排序为:" << endl;
for (i = 1; i < n; i++) {
low = 0;
high = i - 1;
temp = R[i];
while (low <= high) {
mid = (low + high) / 2;
if (R[mid] > temp) {
high = mid - 1;
}
else {
low = mid + 1;
}
}
for (j = i - 1; j >= high + 1; j--)
R[j + 1]