选择排序

来源:互联网 发布:sql更新字段部分值 编辑:程序博客网 时间:2024/06/06 19:50

java源代码:

package bobo.algo;public class SelectionSort {    // 我们的算法类不允许产生任何实例    private SelectionSort(){}    public static void sort(int[] arr){        int n = arr.length;        for( int i = 0 ; i < n ; i ++ ){            // 寻找[i, n)区间里的最小值的索引            int minIndex = i;            for( int j = i + 1 ; j < n ; j ++ )                if( arr[j] < arr[minIndex] )                    minIndex = j;            swap( arr , i , minIndex);        }    }    private static void swap(int[] arr, int i, int j) {        int t = arr[i];        arr[i] = arr[j];        arr[j] = t;    }    public static void main(String[] args) {        int[] arr = {10,9,8,7,6,5,4,3,2,1};        SelectionSort.sort(arr);        for( int i = 0 ; i < arr.length ; i ++ ){            System.out.print(arr[i]);            System.out.print(' ');        }        System.out.println();    }}

C++源代码:

#include <iostream>#include <algorithm>using namespace std;void selectionSort(int arr[], int n){    for(int i = 0 ; i < n ; i ++){        // 寻找[i, n)区间里的最小值        int minIndex = i;        for( int j = i + 1 ; j < n ; j ++ )            if( arr[j] < arr[minIndex] )                minIndex = j;        swap( arr[i] , arr[minIndex] );    }}int main() {    int a[10] = {10,9,8,7,6,5,4,3,2,1};    selectionSort(a,10);    for( int i = 0 ; i < 10 ; i ++ )        cout<<a[i]<<" ";    cout<<endl;    return 0;}
原创粉丝点击