插入 选择 冒泡 排序
2014-05-29 17:20
162 查看
插入排序:
public class InsertSort {
public static void main(String[] args) {
int[] array = {2,3,1,8,6};
System.out.print("排序前;");
printArray(array);
insertAscSort(array);
insertDescSort(array);
}
/**
* 插入升序排序
* @param array
*/
public static void insertAscSort(int[] array){
int length = array.length;
for(int out = 1;out<length;out++){
int temp = array[out];
int in = out;
while(in>0 && array[in-1]>temp){
array[in] = array[in-1];
--in;
}
array[in]=temp;
}
System.out.println();
System.out.print("升序排序后;");
printArray(array);
}
/**
* 插入降序排序
* @param array
*/
public static void insertDescSort(int[] array){
int length = array.length;
for(int out = 1;out<length;out++){
int temp = array[out];
int in = out;
while(in>0 && array[in-1]<temp){
array[in] = array[in-1];
--in;
}
array[in]=temp;
}
System.out.println();
System.out.print("升序排序后;");
printArray(array);
}
public static void printArray(int[] array){
int length = array.length;
for(int i=0;i<length;i++){
System.out.print(array[i]);
if(i!=length-1){
System.out.print(",");
}
}
}
}
冒泡排序:
public class BubbleSort {
public static void main(String[] args) {
int[] array = {10,5,7,12};
System.out.print("排序前;");
printArray(array);
bubbleAscSort(array);
bubbleDescSort(array);
}
/**
* 冒泡升序排序
* @param array
*/
public static void bubbleAscSort(int[] array){
int length = array.length;
int temp=0;
for(int i=0;i<length-1;i++){
for(int j=0;j<length-i-1;j++){
if(array[j+1]<array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println();
System.out.print("升序排序后;");
printArray(array);
}
/**
* 冒泡降序排序
* @param array
*/
public static void bubbleDescSort(int[] array){
int length = array.length;
int temp=0;
for(int i=0;i<length-1;i++){
for(int j=0;j<length-i-1;j++){
if(array[j+1]>array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println();
System.out.print("降序排序后;");
printArray(array);
}
public static void printArray(int[] array){
int length = array.length;
for(int i=0;i<length;i++){
System.out.print(array[i]);
if(i!=length-1){
System.out.print(",");
}
}
}
}
选择排序:
public class InsertSort {
public static void main(String[] args) {
int[] array = {2,3,1,8,6};
System.out.print("排序前;");
printArray(array);
insertAscSort(array);
insertDescSort(array);
}
/**
* 插入升序排序
* @param array
*/
public static void insertAscSort(int[] array){
int length = array.length;
for(int out = 1;out<length;out++){
int temp = array[out];
int in = out;
while(in>0 && array[in-1]>temp){
array[in] = array[in-1];
--in;
}
array[in]=temp;
}
System.out.println();
System.out.print("升序排序后;");
printArray(array);
}
/**
* 插入降序排序
* @param array
*/
public static void insertDescSort(int[] array){
int length = array.length;
for(int out = 1;out<length;out++){
int temp = array[out];
int in = out;
while(in>0 && array[in-1]<temp){
array[in] = array[in-1];
--in;
}
array[in]=temp;
}
System.out.println();
System.out.print("升序排序后;");
printArray(array);
}
public static void printArray(int[] array){
int length = array.length;
for(int i=0;i<length;i++){
System.out.print(array[i]);
if(i!=length-1){
System.out.print(",");
}
}
}
}
冒泡排序:
public class BubbleSort {
public static void main(String[] args) {
int[] array = {10,5,7,12};
System.out.print("排序前;");
printArray(array);
bubbleAscSort(array);
bubbleDescSort(array);
}
/**
* 冒泡升序排序
* @param array
*/
public static void bubbleAscSort(int[] array){
int length = array.length;
int temp=0;
for(int i=0;i<length-1;i++){
for(int j=0;j<length-i-1;j++){
if(array[j+1]<array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println();
System.out.print("升序排序后;");
printArray(array);
}
/**
* 冒泡降序排序
* @param array
*/
public static void bubbleDescSort(int[] array){
int length = array.length;
int temp=0;
for(int i=0;i<length-1;i++){
for(int j=0;j<length-i-1;j++){
if(array[j+1]>array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println();
System.out.print("降序排序后;");
printArray(array);
}
public static void printArray(int[] array){
int length = array.length;
for(int i=0;i<length;i++){
System.out.print(array[i]);
if(i!=length-1){
System.out.print(",");
}
}
}
}
选择排序:
public class SelectSort { public static void main(String[] args) { int[] array = {23,10,7,12,5,1}; System.out.print("排序前;"); printArray(array); selectAscSort(array); selectDescSort(array); } /** * 选择升序排序 * @param array */ public static void selectAscSort(int[] array){ int length = array.length; int min = array[0]; int minIdx = 0; for(int i=0;i<length-1;i++){ for(int j=i+1;j<length;j++){ if(array[j]<min){//将比较符号改为>即是降序排序算法 min = array[j]; minIdx = j; } } array[minIdx]= array[i]; array[i] = min; //重置min、minIdx值 min = array[i+1]; minIdx = i+1; } System.out.println(); System.out.print("升序排序后;"); printArray(array); } /** * 选择降序排序 * @param array */ public static void selectDescSort(int[] array){ int length = array.length; int max = array[0]; int maxIdx = 0; for(int i=0;i<length-1;i++){ for(int j=i;j<length;j++){ if(array[j]>max){//将比较符号改为<即是升序排序算法 max = array[j]; maxIdx = j; } } array[maxIdx]= array[i]; array[i] = max; //重置max、maxIdx值 max = array[i+1]; maxIdx = i+1; } System.out.println(); System.out.print("降序排序后;"); printArray(array); } public static void printArray(int[] array){ int length = array.length; for(int i=0;i<length;i++){ System.out.print(array[i]); if(i!=length-1){ System.out.print(","); } } } }
相关文章推荐
- C语言排序(冒泡,选择,插入,归并,快速)
- java:三种经典大排序汇总,冒泡,插入,选择
- 算法--排序(冒泡,选择,插入,快速)
- O(N2)的三种排序-- 冒泡、选择、插入(java代码)
- 常用的排序 冒泡 ,选择,插入,快速
- 六、内部排序综合(九种)—插入类排序(直接插入、折半插入、希尔排序);交换类排序(冒泡、快速);选择类排序(简单选择、堆排序);二路归并排序;基数排序
- 三大基本排序冒泡、插入、选择
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- java实现七大排序(插入,冒泡,选择,快速,堆,希尔,归并)
- 插入,冒泡,选择,快速排序,二分查找
- 数据结构-排序总结(冒泡 插入 选择 归并)
- 简单选择,冒泡,插入,快速排序之效率比较
- 数组排序(冒泡,选择,插入,希尔)
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- Java数组排序总结(冒泡,选择,插入,希尔)
- java中的排序(选择,冒泡,希尔,插入)
- 非递归排序(冒泡、选择、插入、希尔)
- java:四种int【】数据排序,冒泡,插入,选择,快速排序
- 数据结构与算法 排序(冒泡,选择,插入)
- (数据结构排序的实验四)快速,冒泡,简单选择,直接插入排序的c语言实现!!