// c_dataStructure.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
template<class T>
void combSort(T data[], int n) {
int step = n, j, k;
while ((step = int(step / 1.3)) > 1) {
for (j = n - 1; j >= step; j--) {
k = j - step;
if (data[j] < data[k]){
// swap(data[j], data[k]);
T tmp;
tmp = data[j];
data[j] = data[k];
data[k] = tmp;
}
}
}
bool again = true;
for (int i = 0; i < n - 1 && again; i++) {
for (j = n - 1, again = false; j > i; --j) {
if (data[j] < data[j - 1]) {
// swap(data[j], data[j - 1]);
T tmp;
tmp = data[j];
data[j] = data[j-1];
data[j-1] = tmp;
again = true;
}
}
}
}
template<class T>
void swap(T a, T b) {
T tmp;
if (a > b) {
tmp = b;
b = a;
a = tmp;
}
}
int main()
{
int A[10] = { 1, 4, 6, 23, 5, 2, -1, 9, 4, 40 };
for (int i = 0; i < 10; i++) {
cout << A[i] << " ";
}
cout << endl;
combSort(A, 10);
for (int i = 0; i < 10; i++) {
cout << A[i] << " ";
}
cout << endl;
return 0;
}
冒泡排序改进之梳排序实现
最新推荐文章于 2020-02-26 11:32:35 发布