package com.mysort;
public class One {
//或许,很多人,这三大排序都还不会,这里,我用自己的思想把这三种排序方式写出来了。代码呢其实我也记不住,只是我会根据排序原理的动画来实现代码。这是一个很强的能力,需要长久养成这种习惯,然后根据原理去实现代码。OK,废话不多说了,看看下面代码吧。以下是java实现代码:看不懂的朋友可以给我留言,这是我的QQ邮箱: 1432224036@qq.com
public static void main(String[] args) {
int arr[]={1,4,9,7,3,8,2,6};
/*冒泡排序
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j]){
int t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}*/
// 选择排序:每次从剩下的找到最大值放在已经排好中的后面
int index=0; //改变索引
int max; //默认最大
for (int i = 0; i < arr.length; i++) {
max=arr[index]; //最大值
int maxIndex=index; //最大下标
for (int j=index; j < arr.length; j++) { //找比较每一轮的最大值,并且记录下标位置
if(max<arr[j]){
max=arr[j];
maxIndex=j;
}
}
//把找到的最大值放到第一个位置,第一个位置的数放到这一轮找到最大值的位置
int t=arr[i];
arr[i]=max;
arr[maxIndex]=t;
//从下一个开始找
index++;
}
/* 插入排序: 每次和最后一个比较,若比前面下则再换位置,直到不比前面小。
int count=0;
int pos;
for (int i = 1; i < arr.length; i++) {
pos=count; //一开始进来就是和最后一个数比
int index=i;
while(arr[index]<arr[pos]&&pos>=0){ //排序数 如果比已经排好的最后一个数小则,和前一个比较
int t=arr[pos];
arr[pos]=arr[index];
arr[index]=t;
index-=1; //注意:这是个换了位置的数
pos--; //准备和前一个比较
}
count++;
}*/
/* 输出 */
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j]+" ");
}
}
}
18万+

被折叠的 条评论
为什么被折叠?



