冒泡排序
#include <iostream>
using namespace std;
void BubbleSort(int arr[8]) {
int count = 1;
for (int j = 7; j != 0; j--) {
for (int i = 0; i != j; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
cout << "第" << count << "次排序结果" << endl;
count++;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
}
}
int main(){
int arr[8] = { 16,25,39,27,12,8,45,63 };
cout << "原始数据为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
BubbleSort(arr);
system("pause");
}
选择排序
#include <iostream>
using namespace std;
void SelectSort(int arr[8]) {
int count = 1;
for (int j = 7; j != 0; j--) {
int temp = arr[0];
int k = 0;
for (int i = 0; i != j+1; i++) {
if (arr[i] > temp) {
temp = arr[i];
k = i;
}
}
arr[k] = arr[j];
arr[j] = temp;
cout <<"第"<<count<<"次排序"<< endl;
count++;
for (int i = 0; i != 8; i++) {
cout << arr[i] <<endl;
}
}
}
int main(){
int arr[8] = { 16,25,39,27,12,8,45,63 };
cout << "原始数据为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
SelectSort(arr);
system("pause");
}
插入排序
#include <iostream>
using namespace std;
void InsertionSort(int arr[]) {
for (int i = 1; i != 8; i++) {
int j = i-1;
int tmp = arr[i];
while (tmp < arr[j] && j != -1) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = tmp;
cout << "第" <<i<<"次排序结果"<< endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
}
}
int main(){
int arr[8] = { 16,25,39,27,12,8,45,63 };
cout << "原始数据为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
InsertionSort(arr);
system("pause");
}
希尔排序
#include <iostream>
using namespace std;
void ShellSort(int arr[],int length) {
int jmp = length / 2;
int count = 1;
while (jmp != 0) {
for (int i = jmp; i < length; i++) {
int j = i- jmp;
int tmp = arr[i];
while (tmp < arr[j] && j >= 0) {
arr[j+jmp] = arr[j];
j -= jmp;
}
arr[jmp+j] = tmp;
}
jmp /= 2;
cout <<"第"<<count<< "次排序为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
count++;
}
}
int main(){
int arr[8] = { 16,25,39,27,12,8,45,63 };
cout << "原始数据为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
int length = sizeof(arr) / sizeof(arr[0]);
ShellSort(arr,length);
system("pause");
}
快速排序
#include <iostream>
using namespace std;
void QuickSort(int arr[],int lside,int rside) {
int mid = arr[lside];
int right = rside;
int left = lside;
if (lside < rside) {
while (left < right) {
while (arr[right] > mid && right>lside) {
right--;
}
while (arr[left] <= mid && left<rside) {
left++;
}
if (left < right) {
int tmp = arr[right];
arr[right] = arr[left];
arr[left] = tmp;
}
}
if (left >= right) {
arr[lside] = arr[right];
arr[right] = mid;
}
cout << "排序过程为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
QuickSort(arr, lside, right - 1);
QuickSort(arr, right + 1, rside);
}
}
int main(){
int arr[8] = { 16,25,39,27,12,8,45,63 };
cout << "原始数据为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << endl;
}
QuickSort(arr,0,7);
system("pause");
}
堆排序
#include <iostream>
using namespace std;
void adjustHeap(int *arr, int size) {
int j = size - 1;
while (j != 0) {
int base = arr[j];
int i = (j - 1) / 2;
if (base > arr[i]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
j--;
}
int tmp = arr[0];
arr[0] = arr[size - 1];
arr[size - 1] = tmp;
}
void heapSort(int *arr,int size) {
while (size != 1) {
adjustHeap(arr, size);
cout << "排序过程" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] <<" ";
}
cout << endl;
size--;
}
}
int main(){
int arr[8] = { 16,25,39,27,12,8,45,63 };
cout << "原始数据为" << endl;
for (int i = 0; i != 8; i++) {
cout << arr[i] << " ";
}
cout << endl;
int length = sizeof(arr) / sizeof(arr[0]);
heapSort(arr,length);
system("pause");
}