C指针编程之道 ---第八次笔记
来源:互联网 发布:mac口红铁锈红是几号 编辑:程序博客网 时间:2024/05/21 09:13
这次是算法中最常用的快速排序,常备成为快排,这里是头尾两个指针的算法。
//快速排序
#include <iostream>
#include <cstdio>
using namespace std;
int partition(int *Array, int i, int j)
{
int t = *(Array + 1);
while(i < j)
{
while(i < j && *(Array + j) >= t)
{
j--;
}
if(i < j)
{
*(Array + 1) = *(Array + j);
i++;
}
while(i < j && *(Array + i) <= t)
{
i++;
}
if(i < j)
{
*(Array + j) = *(Array + i);
j--;
}
}
*(Array + i) = t;
return i;
}
void QuickSort(int *Array, int low, int hight)
{
int mid;
if(low < high)
{
mid = Partition(Array, low, high);
QuickSort(Array, low, mid - 1);
QuickSort(Array, mid + 1, high);
}
}
int main()
{
int i, n;
int Array[255];
printf("请输入数据的个数\n");
scanf("%d", &n);
if(n <= 0 && n >= 255)
{
printf("数据不合理!\n");
exit(1);
}
printf("请依次输入待排序的数据:\n");
for(int i = 1; i <= n; ++i)
{
scanf("%d", (Array + i));
printf("\n待排序的数组是:\n");
for(int i = 1; i <= n; ++i)
{
prntf("%d", *(Array + i));
}
QuickSort(Array, 1, n);
printf("\n排序后的数组是:\n");
for(int j = 1; j <= n; ++j)
{
printf("%d ", *(Array + j));
}
printf("\n");
}
return 0;
}
- C指针编程之道 ---第八次笔记
- C指针编程之道 ---第四次笔记
- C指针编程之道 ---第五次笔记
- C指针编程之道 ---第六次笔记
- C指针编程之道 ---第七次笔记
- C指针编程之道 ---第九次笔记
- C指针编程之道 ---第十次笔记
- C指针编程之道 ---第一次笔记
- C指针编程之道 ---第二次笔记
- C指针编程之道 ---第三次笔记
- C指针编程之道--------笔记
- C指针编程之道 ---第十一次笔记
- 第八次笔记
- 【笔记】C与指针 第八章 数组
- iOS笔记:第八篇 C语言 指针
- C和指针第八章笔记
- C++STL 第八次实验
- c语言第八次练习题
- 程序员练级之路
- Ubuntu快捷键 终端快捷键
- 202 将1到1亿之间没有在随机数中的数求出来
- linux HyperV 网卡驱动收包机制
- WCF的坎坷发布之路
- C指针编程之道 ---第八次笔记
- 203 最短摘要生成
- android shape的使用
- 高效C++ --经验条款(二)
- Boost练习1——时间和日期1
- 二叉树(4)----求二叉树深度,递归和非递归
- 第6章内核数据结构①链表
- jQuery autocomplete的使用(邮箱自动补全)
- VS.NET 各版本发布时提供的asp.net版本