首页 > 代码库 > 快速排序算法的基本实现
快速排序算法的基本实现
/* ******* QSort.cpp ******************* 快速排序实现 ********** */#include "stdafx.h"#include <list>using namespace std;template <typename T>void Sort(T* a, int n){ if (n <= 1) { return; } if (n == 2) { T& left = a[0]; T& right = a[1]; if (left > right) { swap(left, right); } return; } swap(*a, a[n>>1]); T* L = a + 1; T* R = a + n - 1; T v = a[0]; while(L < R) { while(L < R && *L < v)L++; while(R > a && *R >= v)R--; if (L < R) { swap(*L, *R); } } swap(*a, *R); Sort(a, R - a); Sort(R + 1, n - 1 - (R - a));}int _tmain(int argc, _TCHAR* argv[]){ int a[10]; for (int i = 0; i < 10; i++) { a[i] = 10 - i; } Sort<int>(a, 10); return 0;}
快速排序算法的基本实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。