冒泡和快排

来源:互联网 发布:长春亿成网络技术开发 编辑:程序博客网 时间: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
原创粉丝点击