插入排序
package com.zc.manythread;
/**
* 插入排序
* @author 偶my耶
*
*/
public class InsertionSort {
public static void insertion_sort(int[] data) {//
for (int i = 1; i < data.length; i++) {
if (data[i - 1] > data[i]) {
int temp = data[i];
int j = i;
while (j > 0 && data[j - 1] > temp) {
data[j] = data[j - 1];
j--;
}
data[j] = temp;
}
}
}
public static void main(String[] args) {
int[] data = { 6, 2, 4, 1, 5, 9 };
insertion_sort(data);
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + "\t");
}
}
}
选择排序是一类借助“选择” 进行排序的方法。其主要思想是:没趟排序在当前排序序列中选出关键码最小的记录,天机到有序序列中。选择排序比较独特的地方是:记录的移动次数少。
选择排序源代码:
package com.zc.manythread;
/**
* 选择排序
* @author Administrator
*
*/
public class SelectSort {
/**
* 快速排序
* @param date
* @return
*/
int[] SelectSort(int[] date){
for (int i = 0; i < date.length-1; i++) {
int index=i;
for (int j = i+1; j < date.length; j++) {
if (date[j]<date[index]) {
index=j;
}
}
if (index!=i) {
int temp=date[i];
date[i]=date[index];
date[index]=temp;
}
}
return date;
}
/**************
*
* 创建数组数据
* *****************/
private static int[] createDate(int count) {
int[] data=new int[count];
for (int i = 0; i < data.length; i++) {
data[i]=(int)(Math.random()*count);
}
return data;
}
/**************主函数*****************/
public static void main(String[] args) {
final int count=10;
int[] data=createDate(count);
for (int n:data) {
System.out.print(n+"\t");
}
System.out.println();
int[] data2=new SelectSort().SelectSort(data);
for (int n:data) {
System.out.print(n+"\t");
}
}
}
博客地址: | http://www.cnblogs.com/oumyye/ |
博客版权: | 本文以学习、研究和分享为主,欢迎转载,转载请务必注明出处,谢谢合作。 如果文中有不妥或者错误的地方请指出。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! |