三种比较排序算法,java实现

来源:互联网 发布:c 游戏编程基础 编辑:程序博客网 时间:2024/06/01 23:08

冒泡排序:

最简单的排序算法。基本思想是迭代地对输入序列中的第一个元素到最后一个元素进行两两比较,当需要师交换两个元素(位置)。该过程持续迭代值到在一堂排序过程中不需要交换操纵为止。

import java.util.Arrays;public class BubbleSort {public  static int[] bubbleSort(int[] ts) {int length = ts.length;boolean flag = false;for(int i = length - 1; i >= 0; i--) {flag = true;for(int j = 0; j < i; j++) {if(ts[j] > ts[j + 1]) {int tmp = ts[j];ts[j] = ts[j + 1];ts[j + 1] = tmp;flag = false;}}System.out.println(Arrays.toString(ts));if(flag) {System.out.println(length - i);break;}}return ts;}}


选择排序:

寻找序列中的最小值,

用当前位置的值交换最小值

对所有元素重复上述过程,知道整个序列排序完成

public class SelectSort {public  static int[] selectSort(int[] ts) {int length = ts.length;int min = 0;for(int i = 0; i < length; i++) {min = i;for(int j = i; j < length; j++) {if(ts[min] > ts[j]) {min = j;}}if(min != i) {int tmp = ts[i];ts[i] = ts[min];ts[min] = tmp;}}return ts;}}


插入排序:

在每次迭代过程中算法随机地从输入序列中移除一个元素,并将该元素插入待排序序列的正确位置。重复该过程。直到所有输入元素都被选择一次

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #931a68}span.s1 {color: #931a68}span.s2 {color: #7e504f}span.s3 {color: #0326cc}span.s4 {color: #000000}span.Apple-tab-span {white-space:pre}

import java.util.Arrays;

public class InsertionSort {

public static int[] insertSort(int[] a) {

int length = a.length;

int v = 0, j = 0;

for(int k = 2; k < length; k ++) {

v = a[k];

j = k;

while(a[j - 1] > v && j >= 0) {

a[j] = a[j - 1];

j --;

}

a[j] = v;

System.out.println(Arrays.toString(a));

}

return a;

}

}

原创粉丝点击