冒泡排序 选择排序
2008-07-01 13:44
183 查看
冒泡排序:它的内层循环保证遍历一次后,集合中最小(大)元素出现在它的正确位置,下一次就是次小(大)元素。该方法在集合分布的各种情况下交换移动的次数基本不变,属于最慢的一种排序。实现是双重循环控制。这种排序法属于过江龙,就是要找到极端,但是过奖龙也有大哥,二哥等,所以他们只能是大哥挑了二哥挑.处理代码如下:
publicstaticint[]maopao(int[]data){
inttemp;
for(inti=0;i<data.length-1;i++){
for(intj=i+1;j<data.length;j++){
if(data[i]>data[j]){
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
returndata;
}
选择排序:选择法:该方法只是通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作。类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后,我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.
publicstaticint[]xuanze(int[]data){
inttemp;
for(inti=0;i<data.length;i++){
intlowIndex=i;
for(intj=data.length-1;j>i;j--){
if(data[j]<data[lowIndex]){
lowIndex=j;
}
}
temp=data[i];
data[i]=data[lowIndex];
data[lowIndex]=temp;
}
returndata;
}
publicstaticint[]maopao(int[]data){
inttemp;
for(inti=0;i<data.length-1;i++){
for(intj=i+1;j<data.length;j++){
if(data[i]>data[j]){
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
returndata;
}
选择排序:选择法:该方法只是通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作。类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后,我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.
publicstaticint[]xuanze(int[]data){
inttemp;
for(inti=0;i<data.length;i++){
intlowIndex=i;
for(intj=data.length-1;j>i;j--){
if(data[j]<data[lowIndex]){
lowIndex=j;
}
}
temp=data[i];
data[i]=data[lowIndex];
data[lowIndex]=temp;
}
returndata;
}
相关文章推荐
- Java中简单的2个排序(冒泡排序,选择排序)
- 经典算法:二分查找、插入排序、选择排序、冒泡排序
- python 实现排序算法(三)-选择排序和冒泡排序
- 冒泡排序,选择排序,插入排序
- C/C++ 排序之一(冒泡排序、选择排序、交换排序)
- 插入排序是基本排序算法中最好的一种,虽然插入排序也是需要O(N^2)时间,但它比冒泡排序快一倍,比选择排序还要快点。
- 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- 易混的排序算法:冒泡排序、选择排序、快速排序
- 插入排序,选择排序,递归排序和冒泡排序的实现
- 排序算法——桶排序、冒泡排序、快速排序、选择排序
- C 语言 排序算法,冒泡排序,选择排序,插入排序,二分查找
- 选择排序、冒泡排序、插入排序、基数排序、快速排序、归并排序完整C++实现
- C语言:冒泡排序、选择排序、快速排序、插入排序、“shell”法
- JAVA--冒泡排序、选择排序
- Java实现冒泡排序和快速排序,选择…
- 冒泡排序和选择排序以及封装
- (一)冒泡排序,插入排序,选择排序
- 排序算法之冒泡排序与选择排序
- 冒泡排序、选择排序、快速排序的比较