面试--排序(75)
2017-01-09 13:48
218 查看
public class BubbleQuickSort { public void bubbleSort() { int a[] = {49, 28, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 2, 62, 99, 56, 17, 18, 23, 34, 15, 23, 53, 51}; int temp = 0; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a.length - i - 1; j++) { if (a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.print(" " + a[i]); } } public void quickSort() { int a[] = {49, 28, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 2, 62, 99, 56, 17, 18, 23, 34, 15, 23, 53, 51}; quick(a); for (int i = 0; i < a.length; i++) { System.out.print(" " + a[i]); } } private void quick(int[] a) { if (a.length > 0) { _quickSort(a, 0, a.length - 1); } } private void _quickSort(int[] list, int low, int high) { if (low < high) { int middle = getMiddle(list, low, high);//将list一分为二 _quickSort(list, low, middle - 1); _quickSort(list, middle + 1, high); } } private int getMiddle(int[] list, int low, int high) { int tmp = list[low];//数组的第一个作为中轴 while (low < high) { while (low < high && list[high] >= tmp) { high--; } list[low] = list[high];//比中轴小的记录移动到低端 while (low < high && list[low] <= tmp) { low++; } list[high] = list[low]; } list[high] = tmp; return high; } public static void main(String[] args) { new BubbleQuickSort().bubbleSort(); System.out.println("\r\n"); new BubbleQuickSort().quickSort(); //非递归使用 栈数据结构 } }
相关文章推荐
- leetcode 75. Sort Colors 很不错的3种元素排序方法 + O(n)
- LeetCode 75. Sort Colors(排序颜色)
- 面试常用的4种数组排序
- 求职面试__无领导小组讨论__沉船逃生排序问题
- 面试100题:1.把二元查找树转变成排序的双向链表
- 面试准备之--桶类排序
- 面试题五 C/C++面试秘笈 之链表的正向排序--程序员面试题
- 面试常考察的排序(快速排序,归并排序,堆排序)
- [LeetCode] 75. Sort Colors 颜色排序
- 【剑指Offer面试编程题】题目1349:数字在排序数组中出现的次数--九度OJ
- 关于今天面试回答的不好的两个问题(垃圾回收机制和对象的排序)
- 【推荐】八种排序方式 面试必看
- 面试前的准备(java专业 ~学习算法排序以及查找)
- 把二元查找树转变成排序的双向链表——精选微软经典的算法面试100题中第一题
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.2 冒泡排序练习题(JAVA版)
- 面试需要掌握的排序 Quick Sort and Merge Sort 快速排序和归并排序 [Java]
- 笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算
- 微软等数据结构+算法面试100题(43)-- 把二元查找树转变成排序的双向链表
- 【剑指Offer面试编程题】题目1349:数字在排序数组中出现的次数--九度OJ
- 【面试题17】合并两个排序的链表