Java实现快速排序
来源:互联网 发布:冷兵器 知乎 编辑:程序博客网 时间:2024/04/29 13:18
今天特地把快速算法用Java实现了一下,毕竟找工作面试笔试用的比较多。
package String.Cheng;import java.util.Scanner;public class QuickSort {public static void Swap(int []s,int l,int r){int temp;if (s[l]<s[r]&&s[r]<s[(l+r)/2]) {temp = s[r];s[r] = s[l];s[l] = temp;}else if (s[l]>s[r]&&s[r]>s[(l+r)/2]) {temp = s[r];s[r] = s[l];s[l] = temp;}if (s[l]<s[(l+r)/2]&&s[r]>s[(l+r)/2]) {temp = s[(l+r)/2];s[(l+r)/2] = s[l];s[l] = temp;}else if (s[l]<s[(l+r)/2]&&s[r]>s[(l+r)/2]) {temp = s[(l+r)/2];s[(l+r)/2] = s[l];s[l] = temp;}}public static void QuickSort(int s[], int l, int r) { if (l < r) { Swap(s,l,r); //取数组的开始、中间、结束位置三个数的中间数作为枢纽元 int i = l, j = r, x = s[l]; while (i < j) { while(i < j && s[j] >= x) // 从右向左找第一个小于x的数 j--; if(i < j) s[i++] = s[j]; while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数 i++; if(i < j) s[j--] = s[i]; } s[i] = x; QuickSort(s, l, i - 1); // 递归调用 QuickSort(s, i + 1, r); } } public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入数组,以空格隔开!");Scanner sc = new Scanner(System.in);String b[] = sc.nextLine().split(" ");int a[] = new int[b.length];for (int i = 0; i < b.length; i++) {a[i] = Integer.parseInt(b[i]);}QuickSort(a,0,a.length-1);for (int i = 0; i < a.length; i++) {System.out.print(a[i]+",");}}}
0 0
- java实现快速排序
- 快速排序Java实现
- 快速排序java实现
- 快速排序JAVA实现
- Java实现快速排序
- 快速排序--Java实现
- 快速排序java实现
- java实现快速排序
- java实现快速排序
- Java实现快速排序
- Java实现快速排序
- 快速排序java实现
- 快速排序Java实现
- Java实现快速排序
- java快速排序实现
- JAVA实现快速排序
- java实现快速排序
- java 实现快速排序
- 列表隔行颜色显示不一样
- Cluster: EM
- ACM学习-动态规划-文本压缩问题
- mac 终端ssh远程连接到服务器
- Visual C++ 64 位迁移的常见问题
- Java实现快速排序
- windows和linux之间共享代码时,要把代码放在linux系统下,由windows来访问!
- Chrome 控制台console的用法
- java静态内部类
- [sicily]1145. 校门外的树
- 程序员参考资料汇总_伊甸干果园
- 解决自动换行,自适应高度。常见与标签样式的 ViewGroup
- RAID4 慢的原因
- 正则表达式 Java