冒泡和快排
来源:互联网 发布:长春亿成网络技术开发 编辑:程序博客网 时间:2024/06/11 21:04
#include <iostream>
using namespace std;
void BubbleSort(int *data, int n)
{
int i, j, temp;
for (i = 0; i < n -1; i++)
{
for (j = i; j < n - 1; j++)//从0开始,到倒数第i+1个结束
{
if (data[j] > data[j + 1])
{
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
}
void BubbleSort2(int data[], int n)//冒泡排序
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (data[j]>data[j + 1])//交换变量,将最大元素交换到最后
{
int temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
}
void QuickSort(int data[], int low ,int high)
{
if (low >= high)
return;
int first = low;
int last = high;
int key = data[first];//作为轴值
while (first < last)
{
while (first < last&&data[last] >= key)//从右向左找到第一个比轴值大的,并交换
last--;
data[first] = data[last];
while (first < last&&data[first] <= key)
first++;
data[last] = data[first];
}
data[last] = key;
QuickSort(data, low, first - 1);
QuickSort(data, first + 1, high);
}
void QuikSort2(int data[], int low, int high)
{
if (low >= high)
return;
int first = low;
int last = high;
int key = data[first];//作为轴值
while (first < last)
{
while (first<last&&data[last])
}
}
int main()
{
int data[] = { 1, 3, 5, 7, 32, 5, 6, 7,1 };
int n = sizeof(data)/sizeof(int);
// BubbleSort2(data, n);
QuickSort(data, 0, n - 1);
for (int i = 0; i < n; i++)
cout << data[i] << " ";
cout << endl;
}
0 0
- 冒泡和快排
- 冒泡和快排
- php冒泡排序和快排
- 冒泡和快排的js实现
- 选择,冒泡,快排
- 冒泡 快排
- 冒泡排序,快排
- 冒泡排序,快排
- 排序算法之交换排序(冒泡和快排)
- 交换类排序:冒泡排序(优化)和快排
- 链表排序(冒泡、插入、归并和快排)
- 排序算法二冒泡排序和快排
- 冒泡排序和快排的交换次数
- [Algorithm] 快排与冒泡
- 冒泡,选择,快排,归并
- 冒泡,选择,插入,归并,快排
- 两种排序(快排+冒泡)
- 算法—排序(快排,冒泡)
- 设计模式之禅学习笔记--适配器模式
- 不同的路径
- 主要的css hack
- 个人作业
- Mathematics Genius(模拟计算器加减乘)
- 冒泡和快排
- 【计算几何】POJ 2318 & POJ 2398
- C Primer Plus 第十四章学习总结……2015.5.17
- Rest Service 常见结构
- shell 变量
- 个人作业
- String to Integer (atoi)
- c#(冒泡算法,鞍点和二分法)
- android--获取view或者view事件发生的坐标的方法