快速排序
2012-05-19 20:34
141 查看
/*
时间:2012年5月19日 20:32:50
功能:快速排序
*/
# include <stdio.h>
//数组快排
void quicksort(int data[], int low, int high)
{
int i,pivot,j;
if(low < high)
{
pivot = data[low];
i = low;
j = high;
while (i < j)
{
while(i<j && data[j]>=pivot)
j--;
if(i < j)
data[i++] = data[j];
while(i<j && data[i]<=pivot)
i++;
if(i<j)
data[j--] = data[i];
}
data[i] = pivot;
quicksort(data, low, i-1);
quicksort(data, i+1, high);
}
}
// 数组输出。
void OutPut(int data[], int len)
{
for (int i=0; i<len; i++)
{
printf("%d ", data[i]);
}
printf("\n\n");
}
int main(void)
{
int data[] = {5, 7, 1, 6, 44, 11, 56, 33, 45};
printf("未排序前:\n");
OutPut(data, 9);
quicksort(data, 0, 8);
printf("排序以后:\n");
OutPut(data, 9);
return 0;
}
/*
结果:
---------------------------------------------
未排序前:
5 7 1 6 44 11 56 33 45
排序以后:
1 5 6 7 11 33 44 45 56
Press any key to continue
---------------------------------------------
*/
时间:2012年5月19日 20:32:50
功能:快速排序
*/
# include <stdio.h>
//数组快排
void quicksort(int data[], int low, int high)
{
int i,pivot,j;
if(low < high)
{
pivot = data[low];
i = low;
j = high;
while (i < j)
{
while(i<j && data[j]>=pivot)
j--;
if(i < j)
data[i++] = data[j];
while(i<j && data[i]<=pivot)
i++;
if(i<j)
data[j--] = data[i];
}
data[i] = pivot;
quicksort(data, low, i-1);
quicksort(data, i+1, high);
}
}
// 数组输出。
void OutPut(int data[], int len)
{
for (int i=0; i<len; i++)
{
printf("%d ", data[i]);
}
printf("\n\n");
}
int main(void)
{
int data[] = {5, 7, 1, 6, 44, 11, 56, 33, 45};
printf("未排序前:\n");
OutPut(data, 9);
quicksort(data, 0, 8);
printf("排序以后:\n");
OutPut(data, 9);
return 0;
}
/*
结果:
---------------------------------------------
未排序前:
5 7 1 6 44 11 56 33 45
排序以后:
1 5 6 7 11 33 44 45 56
Press any key to continue
---------------------------------------------
*/
相关文章推荐
- 排序算法:快速排序
- 快速排序详解
- 排序算法--交换排序(冒泡排序、快速排序、随机快速排序)java实现
- 快速排序,一个爱情故事-java版
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- PAT-B 1045. 快速排序
- 快速排序 C语言版
- 仿Android联系人SideBar排序,根据拼音A-Z字母快速导航联系人姓名,以及输入搜索条件过滤,显示姓名的文字图片
- 洛谷 P1177 【模板】快速排序【13种排序模版】
- 快速排序
- java 快速排序随机选择key
- 【重温经典算法之二】快速排序
- 快速排序
- 快速排序
- js之快速排序
- Java常见排序算法之快速排序
- PHP实现快速排序
- 重点算法--快速排序
- 快速排序的随机化版本
- 快速排序