隨筆-126  評論-247  文章-5  trackbacks-0

              
          選擇排序(Selection sort)是一種簡單直觀的排序算法。

          首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,

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

          C++ 實現(xiàn)代碼片段

             
          //簡單選擇排序,按自然順序
          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 實現(xiàn)代碼片段


          //簡單選擇排序,按自然順序
          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++ 實現(xiàn)完整代碼

             
          /**
           * <!--
           * 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;
                  }
              }
          }
             
          //遍歷數(shù)組
          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 實現(xiàn)完整代碼

             
          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 閱讀(748) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 东丽区| 沽源县| 同江市| 嘉峪关市| 长乐市| 鸡西市| 中卫市| 台湾省| 邯郸县| 肥城市| 正蓝旗| 武乡县| 怀宁县| 靖宇县| 梅河口市| 齐河县| 额尔古纳市| 瑞安市| 新平| 临潭县| 彰化市| 五大连池市| 抚宁县| 孝昌县| 时尚| 获嘉县| 和田市| 永修县| 曲麻莱县| 庐江县| 文昌市| 曲松县| 柳林县| 阳东县| 白银市| 武冈市| 湖南省| 神农架林区| 资中县| 台山市| 柘荣县|