随笔-126  评论-247  文章-5  trackbacks-0

    
选择排序(Selection sort)是一种简单直观的排序算法。

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,

然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

C++ 实现代码片段

   
//简单选择排序,按自然顺序
void selectsort(Element array[], int len){
    
int index, min, temp;
    
for(int i = 0; i < len - 1; i++){  // N - 1 趟
        min = i;
        
//查找选择最小元素值的下标索引值
        for(index = i + 1; index < len; index++){
            
if(array[min] > array[index])
                min 
= index;
        }
        
//交换
        if(min != i){
            temp 
= array[min];
            array[min] 
= array[i];
            array[i] 
= temp;
        }
    }
}
   


Java 实现代码片段


//简单选择排序,按自然顺序
public static void selectsort(int[] array){
    
int min, index, temp;
    
for(int i = 0; i < array.length - 1; i++){  // N - 1 趟
        min = i;
        
//查找选择最小元素值的下标索引值
        for(index = i + 1; index < array.length; index++){
            
if(array[min] > array[index])
                min 
= index;
        }
        
//交换
        if(min != i){
            temp 
= array[min];
            array[min] 
= array[i];
            array[i] 
= temp;
        }
    }
}
  


C++ 实现完整代码

   
/**
 * <!--
 * File   : selectsort.h
 * Author : fancy
 * Email  : fancydeepin@yeah.net
 * Date   : 2013-02-06
 * --!>
 
*/
#include 
<stdio.h>
#include 
<stdlib.h>
#define length(array) sizeof(array) / sizeof(array[0])
#define Element int
#define format "%d"
   
//简单选择排序,按自然顺序
void selectsort(Element array[], int len){
    
int index, min, temp;
    
for(int i = 0; i < len - 1; i++){  // N - 1 趟
        min = i;
        
//查找选择最小元素值的下标索引值
        for(index = i + 1; index < len; index++){
            
if(array[min] > array[index])
                min 
= index;
        }
        
//交换
        if(min != i){
            temp 
= array[min];
            array[min] 
= array[i];
            array[i] 
= temp;
        }
    }
}
   
//遍历数组
void visit(Element array[], int len){
    
for(int i = 0; i < len; i++){
        printf(format, array[i]);
    }
}
   

 

   
/**
 * <!--
 * File   : SelectSort.cpp
 * Author : fancy
 * Email  : fancydeepin@yeah.net
 * Date   : 2013-02-06
 * --!>
 
*/
#include 
"selectsort.h"

int main() {

    Element array[
10= {4725869103};
    selectsort(array, length(array));
    visit(array, length(array));
    
return 0;
}
   


Java 实现完整代码

   
package net.yeah.fancydeepin.sort.select;
/**
 * <!--
 * Author : fancy
 * Email  : fancydeepin@yeah.net
 * Date   : 2013-02-06
 * --!>
 
*/
public class Sort {

    
private Sort(){}
    
    
//简单选择排序,按自然顺序
    public static void selectsort(int[] array){
        
int min, index, temp;
        
for(int i = 0; i < array.length - 1; i++){  // N - 1 趟
            min = i;
            
//查找选择最小元素值的下标索引值
            for(index = i + 1; index < array.length; index++){
                
if(array[min] > array[index])
                    min 
= index;
            }
            
//交换
            if(min != i){
                temp 
= array[min];
                array[min] 
= array[i];
                array[i] 
= temp;
            }
        }
    }
       
}
  

 

  
package test;
/**
 * <!--
 * Author : fancy
 * Email  : fancydeepin@yeah.net
 * Date   : 2013-02-06
 * --!>
 
*/
import net.yeah.fancydeepin.sort.select.Sort;

public class Test {

    
public static void main(String[] args) {
        
        
int[] array = {4725869103};
        Sort.selectsort(array);
        
for(int obj : array){
            System.out.print(obj);
        }
    }
}
   


 



  
posted on 2013-02-06 09:52 fancydeepin 阅读(739) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: