黑马程序员-java学习之排序算法
来源:互联网 发布:三星ml2161清零软件 编辑:程序博客网 时间:2024/03/28 21:48
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
找了一些比较常见的一些算法,共享出来
package com.sort;/* * 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的 * 冒泡排序 * 选择排序 * 插入排序 * 快速排序 * */public class Sort {public static void main(String[] args) {// TODO Auto-generated method stubint arr[] = {60, 20, 50, 12, 17, 39, 67};//bubbleSort(arr);//System.out.print("\n");//selectSort(arr);//System.out.print("\n");//insertSort(arr);//System.out.print("\n");//效率较高的是快速排序quickSort(arr, 0, arr.length - 1);for(int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}//冒泡排序public static void bubbleSort(int array[]) {int len = array.length;for(int i = 0; i < len - 1; i++) {for(int j = 0; j < len - i - 1; j++) {if(array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}for(int i = 0; i < len; i++) {System.out.print(array[i] + " ");}}//选择排序public static void selectSort(int array[]) {int temp = 0;int len = array.length;for(int i = 0; i < len - 1; i++) {int min = array[i];int index = i;for(int j = i + 1; j < len; j++) {if(min > array[j]) {index = j;}}temp = array[i];array[i] = array[index];array[index] = temp;}for(int i = 0; i < len; i++) {System.out.print(array[i] + " ");}}//插入排序public static void insertSort(int array[]) {int len = array.length;for(int i = 1; i < len; i++) {int temp = array[i];int index = i;while(index > 0 && array[index - 1] > temp) {array[index] = array[index - 1];index--;}array[index] = temp;}for(int i = 0; i < len; i++) {System.out.print(array[i] + " ");}}//快速排序public static void quickSort(int array[], int low, int height) {if(low < height) {int result = partition(array, low, height);quickSort(array, low, result - 1);quickSort(array, result + 1, height);}}private static int partition(int array[], int low, int height) {int key = array[low];while(low < height) {while(low < height && array[height] >= key) {height--;}array[low] = array[height];while(low < height && array[low] <= key) {low++;}array[height] = array[low];}array[low] = key;return low;}}
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
- 黑马程序员-java学习之排序算法
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- 黑马程序员--JAVA排序算法
- 黑马程序员java学习第四天,数组以及排序算法
- 【黑马程序员】 学习笔记 - Java数组及排序算法
- 黑马程序员_java基础学习笔记之排序算法(选择排序、冒泡排序
- 黑马程序员—Java排序算法
- 黑马程序员--java基础--排序算法
- 黑马程序员:Java基础之选择排序
- 黑马程序员-------Java基础之选择排序
- 黑马程序员 Java基础之排序
- 黑马程序员之Java--递归算法练习
- 黑马程序员——JAVA基础之简单的排序算法
- 黑马程序员---Java排序
- 黑马程序员——java学习之基础算法的学习
- 黑马程序员—Java基础学习笔记之数组排序(机选双色球)
- 黑马程序员-----排序算法总结
- 黑马程序员--java学习之集合框架
- FusionChart中引入图类型和数据源方法
- Ubuntu 13.04 android编译环境配置
- 小for的Cocos2d-x学习笔记与感悟4之单击事件
- Marklogic search development -2.1Understanding the Search API
- 关于禁用触摸屏右键的方法
- 黑马程序员-java学习之排序算法
- 汇编不能被C语言取代
- 编程基础-----田忌赛马
- c#窗口句柄
- Marklogic search development -2.2Controlling the Search With the Options Node
- 【RSLogix5000】—(2.1)—RSLogix5000常用指令介绍——原理
- Ant 编译 报非法字符:\65279 错误
- 机器翻译重要过程(4)---估计概率构造短语翻译表
- hdu 4635(强连通分量)