交换排序
2015-11-18 08:27
176 查看
package test;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = { 91, 55, 18, 39, 47, 62, 48, 16, 4 };
sort(arr);
}
public static void sort(int[] arr) {
//冒泡排序两层循环
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length -1- i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k]+" ");
}
}
}
package test;
/**快速排序
* 需要两个函数:
① 递归函数 public static void quickSort(int[]n ,int left,int right)
② 分割函数(一趟快速排序函数) public static int partition(int[]n ,int left,int right)
* @author Administrator
*
*/
public class QuickSort {
public static void main(String[] args) {
int [] arr = {49,38,65,97,76,13,27};
quickSort(arr,0,arr.length-1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
public static void quickSort(int[] arr, int left, int right){
int key;
if(left<right){
key=partition(arr, left, right);
quickSort(arr, left, key-1);
quickSort(arr, key+1, right);
}
}
//一趟排序
public static int partition(int[] arr, int left, int right){
int key=arr[left];
while(left<right){
while(left<right&&arr[right]>=key) right--;
arr[left]=arr[right];
while(left<right&&arr[left]<=key) left++;
arr[right]=arr[left];
}
arr[left]=key;
return left;
}
}
public class BubbleSort {
public static void main(String[] args) {
int[] arr = { 91, 55, 18, 39, 47, 62, 48, 16, 4 };
sort(arr);
}
public static void sort(int[] arr) {
//冒泡排序两层循环
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length -1- i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k]+" ");
}
}
}
package test;
/**快速排序
* 需要两个函数:
① 递归函数 public static void quickSort(int[]n ,int left,int right)
② 分割函数(一趟快速排序函数) public static int partition(int[]n ,int left,int right)
* @author Administrator
*
*/
public class QuickSort {
public static void main(String[] args) {
int [] arr = {49,38,65,97,76,13,27};
quickSort(arr,0,arr.length-1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
public static void quickSort(int[] arr, int left, int right){
int key;
if(left<right){
key=partition(arr, left, right);
quickSort(arr, left, key-1);
quickSort(arr, key+1, right);
}
}
//一趟排序
public static int partition(int[] arr, int left, int right){
int key=arr[left];
while(left<right){
while(left<right&&arr[right]>=key) right--;
arr[left]=arr[right];
while(left<right&&arr[left]<=key) left++;
arr[right]=arr[left];
}
arr[left]=key;
return left;
}
}
相关文章推荐
- 常规功能和模块自定义系统 (cfcmms)—016模块字段的定义
- 可拖拽GridView代码解析
- Android Studio混淆打包配置
- 【笨木头Unity】入门之旅010(完结):Demo之四处找死(五)_UI
- 创业没有寒冬 心定方得始终
- [Python Fabric] [SSH] Mac OS X 10.9 + Vagrant虚拟环境使用Python Fabric进行SSH远程登录的简单实验
- Android之Paint属性介绍
- 第11条:谨慎地覆盖clone
- 一位开发者的 Linux 容器之旅
- 百度校招小结:我做技术面试官的一些思考
- Extjs xtypes 常见示例
- hdu 4939 Stupid Tower Defense dp
- 关于python的编码问题和raw_input的乱码问题
- python之字符串格式化(format)
- UITableView
- Extjs5 Gridpanel
- 超简单拼图实现
- 张国祥老师在宁波金鸟服饰指导岗位工作标准优化与绩效管理
- Python篇----Requests获取网页源码(爬虫基础)
- 指针作为函数参数传递