数据结构(C数据)--快速排序
来源:互联网 发布:java葵花宝典下载 编辑:程序博客网 时间:2024/05/22 03:10
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 7
void swap(int *pa, int *pb)
{
int temp = 0;
temp = *pb;
*pb = *pa;
*pa = temp;
}
//快速排序的经典算法
int findpos(int *table_num, int length)
{
int low = 0;
int high = length-1;
int temp = table_num[0];
while(low < high)
{
while(low<high && temp<table_num[high]) high--;
swap(&table_num[low], &table_num[high]);
while(low<high && temp>table_num[low]) low++;
swap(&table_num[low], &table_num[high]);
}
table_num[low] = temp;
return low;
}
//递归实现
void speed_order(int *table_num, int length)
{
int pos = 0;
int low = 0, high = length-1;
if(low<high)
{
pos = findpos(table_num, length);
speed_order(table_num, pos+1);
speed_order(table_num+pos+1, length-pos-1);
}
}
//输出
void traverse_array(int *table_num, int length)
{
int i = 0;
for(i=0; i<length; i++)
{
printf("Input %d: %d\n", i, table_num[i]);
}
}
//输入
void input_array(int *table_num, int length)
{
int i = 0;
memset(table_num, 0, length);
for(i=0; i<length; i++)
{
printf("Input %d: \n", i);
scanf("%d", &table_num[i]);
}
}
int main()
{
int table_num[SIZE];
memset(table_num, 0, sizeof(table_num)/sizeof(int));
input_array(table_num, sizeof(table_num)/sizeof(int)); //输入
speed_order(table_num, sizeof(table_num)/sizeof(int)); //快速排序
traverse_array(table_num, sizeof(table_num)/sizeof(int)); //遍历
return 0;
}
- 数据结构(C数据)--快速排序
- 快速排序----C语言数据结构
- 数据结构之快速排序(C语言)
- 数据结构 C语言实现快速排序
- 数据结构之快速排序(c++)
- 数据结构--快速、冒泡、选择排序C语言实现
- 数据结构 - 快速排序(Quick Sort) 详解 及 代码(C++)
- 快速排序的C语言实现【严蔚敏--数据结构】
- 数据结构严蔚敏版快速排序算法c语言实现
- 《数据结构与算法分析(c描述》—— 快速排序
- C语言-数据结构-快速排序及优化-源代码
- 数据结构与算法(C语言版)__快速排序
- 数据结构 快速排序(用C语言实现)
- 数据结构之快速排序
- 数据结构练习:快速排序
- 数据结构之快速排序
- 数据结构之------快速排序
- 快速排序<参考数据结构>
- 黑马程序员----基础学习第五天
- 各种排序算法
- 黑马程序员----基础学习第六天
- 祈福
- 线程通信
- 数据结构(C数据)--快速排序
- 12项职场缺陷行为你有吗?
- 黑马程序员----基础学习第七天
- Java接口和Java抽象类
- 强悍乘坐式机器人 可用手控制机械臂
- linux常用命令
- 马云:卸任后先睡三个月 不再折腾互联网
- Linux命令行之逗趣无极限
- 程序人生--2009年(52)