快速排序 和 把一个无序的整形数组分成两部分(以数组第一个数为基准进行划分)
来源:互联网 发布:ctr数据 编辑:程序博客网 时间:2024/04/29 14:13
一: 把一个无序的整形数组分成两部分
把一个无序的整形数组分成左右两部分:以数组第一个数为基准进行划分,使得左边部分的任意一个数 都小于右边部分的任意一个数,并把基准数插到左边部分的最后一个位置
(或者右边部分的第一个位置)。
二 效果:
三 代码
//数组遍历void PrintArray( int *a , int len){int i = 0;for (i = 0; i < len; i++){printf("%d " , a[i]);}}//快速排序sort(int a[] , int len){ int i = 0, j = 0, tmp = 0 , t= 0 ,count=1;tmp = a[0];for (i = 0+1, j = len - 1; i <j; ){while (a[i]<=tmp){i++;}while (a[j]>=tmp){j--;}if (i < j)//这里一定要加上i小于j{t = a[i];a[i] = a[j];a[j] = t;}printf("\n第%d次交换\n",count);count = count + 1;PrintArray(a, 10);}t = a[j];a[j] = tmp;a[0] = t;}void main(){int a[10] = { 3, 5, 2, 6, 0, 9, 7, 4, 8, 1 };//数组遍历printf("排序前:\n");PrintArray(a , 10);printf("\n");sort(a,10);printf("\n排序后:\n");PrintArray(a,10);getche();}
0 0
- 快速排序 和 把一个无序的整形数组分成两部分(以数组第一个数为基准进行划分)
- 以第一个数组元素作为基准元素的快速排序
- 对整形数组进行快速排序
- 以字符串中出现次数最多的字符的个数为权值,对一个字符串数组进行升序排序
- C#中Split用法(把字符串以某个字符为分隔符分成一个数组)
- 将一个数组分成和尽可能相等的两份
- 给定一个无序整形数组,找出其中所以三个数之和为0的所有组合
- 将数组分成两部分使得两部分的和的差最小
- 将数组分成两部分,使得这两部分的和的差最小
- 背包问题变种:将数组分成两部分使得两部分的和的差最小
- 对有限数组进行计数排序和求一个无序数组的中位数——题集(十八)
- 快速排序 以第一个元素为中轴 并测试1000000个整形元素的速度
- 不排序,两种方法找到无序数组的最大K个数
- 不排序,两种方法找到无序数组的最大K个数
- 把一个长度为n的数组分成k段,让每段和的最大值最小。
- 把一个完全图分成两部分
- 快速排序(以中间为基准)
- 编写将一个包含有20个数据的数组M分成两个数组,正整数数组P和负数数组N ,分别把这两个数组中的数据的个数显示出来
- HID设备类详解
- Linux网络管理命令
- 欢迎使用CSDN-markdown编辑器
- Java程序员应该知道的10个调试技巧
- 使用SwipeRefreshLayout和RecyclerView实现仿“简书”下拉刷新和上拉加载更多
- 快速排序 和 把一个无序的整形数组分成两部分(以数组第一个数为基准进行划分)
- 常用socket函数详解
- 中值滤波与图像锐化
- weblogic部署之wls1036_dev.zip安装
- handler使用
- Html开发常用习惯
- Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) A(贪心)
- IntelliJ IDEA 提交代码到远程GitHub仓库
- 前端Js框架汇总