public class BubbleSort implements SortUtil.Sort{ public void sort(int[] data){ for (int i = 0; i < data.length; i++ ){//遍历待排序的位 for (int j = data.length-1; j>i ; j--){ //交换到最后,第一位必定是最小的 if (data[j] < data[j-1]) SortUtil.swap(data, j, j-1); } } } }
public class SelectSort implements SortUtil.Sort{ public void sort(int[] data){ int temp; for (int i = 0; i < data.length; i++ ){ temp = i; for (int j = data.length-1; j>i ; j--){ if (data[j] < data[temp]) temp = j; } SortUtil.swap(data, i, temp); } } }
public class InsertSort implements SortUtil.Sort{ public void sort(int[] data){ for (int i = 1; i < data.length; i++ ) { //遍历待排序的位 for (int j = i ; j>0 && data[j-1]> data[j]; j--){ //从后往前(数组,从最后一位开始移位操作) SortUtil.swap(data, j, j-1); } } } }
void insertSort(int* int_array,int start, const int len, int inc){ //对步长为inc的子序列进行排序 int temp; for(int i = start; i < len; i+=inc){ //for循环的增量为inc for(int j = i; j>0; j-= inc){ if(int_array[j] < int_array[j-inc]){ temp = int_array[j]; int_array[j] = int_array[j-inc]; int_array[j-inc] = temp; } } } } void shellSort(int* int_array, const int len){ for(int inc = len/2; inc >0; inc/=2) {//先对inc由大到小遍历 for(int i = 0; i < inc; i++) {//遍历组 insertSort(int_array, i, len, inc);//在每组内进行插入排序 } } }
原文:http://www.cnblogs.com/qionglouyuyu/p/4842554.html