冒泡、插入、选择排序
2013-11-27 20:34
239 查看
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]+" ");
}
}
}
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]+" ");
}
}
}
相关文章推荐
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
- 数据结构排序算法总结包括选择、插入、希尔、快速、冒泡等排序方法
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 五种排序方法(选择、冒泡、快排、插入、希尔)
- 数据结构 学习笔记(十):排序(上):简单排序(冒泡,插入),希尔 / 选择 / 堆 / 归并 排序
- Daily 排序之冒泡、选择、插入
- 插入、冒泡、选择排序
- C语言排序实例(选择、冒泡、插入、折半、快速)
- java相关总结4--冒泡、选择、快速、插入排序
- 排序大全【各种排序】:直接插入,折半插入,冒泡,快排,简单选择,堆排序,归并排序
- 冒泡、插入、选择排序
- 【数据结构】 单链表的基本操作+反转+选择/直接插入/冒泡3种排序
- 冒泡、选择、插入排序的具体分析
- java冒泡、简单插入、选择排序
- java实现常见的排序(冒泡、插入、选择、快排)
- 数组排序(冒泡,选择,插入,希尔)
- 各种基本排序(直接插入;希尔;选择;堆;冒泡;快排)
- 简单的排序--冒泡、选择、插入
- java:三种经典大排序汇总,冒泡,插入,选择
- 排序总结(冒泡、选择、插入、快速)