C++实现排序算法合集

冒泡排序(相邻对比)

Template<typename ElementType>

Void BubbleSort(ElementType Arr[], int N)

{

ElementType temp;

for(int i = 0; i < N-1; i++)

{

for(int j = 0; j < N-1-i; j++)

{

if(A[j+1] < A[j])

{

Temp = A[j];

A[j] = A[j+1];

A[j+1] = Temp;

}

}

}

}



选择排序(每次选出最大数从后往前排)

Template<typename ElementType>

Void selectSort(ElementType A[], int N)

{

int maxIndex =0;

ElementType tmp;

for(int i = 0; i < N-1;i++)

{

for(int j = 0; j < N-i;j++)

{

if(A[j] > A[maxIndex])

{

maxIndex = j;

}

}

tmp = A[N-1-i];

A[N-1-i] = A[maxIndex];

A[maxIndex] = tmp;

}

}


插入排序(第N个数与前N-1个数比较,所以从1号位开始)

Template<typename ElementType>

Void insertionSort(ElementType A[], int n)

{

for(int i = 1; i < n; i ++)

{

ElementType tmp = A[i];

for(int j = i; j > 0 && tmp < A[j-1];j—)

{

A[j] = A[j-1];

}

A[j] = tmp;

}

}


快速排序

Template<typename ElementType>

Void quickSort(ElementType A[], int l, int r)

{

if(l < r)

{

int i = l,j=r;

ElementType x = A[l];

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

{

j—;

}

if(i < j)

{

A[i++] = A[j];

}


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

{

i++;

}

if(i < j)

{

A[j—] = A[i];

}

A[i] = x;

quickSort(A, l, i -1);

quickSort(A, i+1, r);

}

}


后续会继续解析各个算法的逻辑和时间复杂度的计算。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值