选择排序SelectSort

/**
 *
 * @author Administrator
 * 功能:选择排序法
 */
package com.test1;

import java.util.Calendar;

public class SelectSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //int[] arr = { 1, 6, 0, -1, 9, -100, -90 };

        int[] arr = new int[50000];
        for (int i = 0; i < arr.length; i++) {
            //让程序随机产生一个1 - 10000个数
            //Math.random会产生一个0到1的数
            arr[i] = (int)(Math.random()*50000);
        }
//        //我认为第一个数就是最小
//        int min = arr[0];
//        //记录最小数的下标
//        int minIndex = 0;

        Select select = new Select();
        //在排序前打印系统时间
        //Calendar是单开模式,在系统里面只有一个,且只需要一个实例,不是new 出来的
        //Java共有23中模式
        Calendar cal = Calendar.getInstance();
        System.out.println("排序前:"+cal.getTime());
        select.sort(arr);
        //在排序后打印系统时间
        //因为是单开的,所有首先重新得到实例
        cal = Calendar.getInstance();
        System.out.println("排序后:"+cal.getTime());

//        System.out.println("选择排序结果是:");
//        for (int i = 0; i < arr.length; i++) {
//            System.out.print(arr[i]+" ");
//        }

    }

}

class Select{
    //选择排序
    public void sort(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            for (int j = i+1; j < arr.length; j++) {
                if(arr[i] > arr[j])
                {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
}
时间: 2024-10-11 07:14:48

选择排序SelectSort的相关文章

排序算法ONE:选择排序SelectSort

1 /** 2 *选择排序: 3 * 对冒泡排序的一个改进 4 * 进行一趟排序时,不用每一次都交换,只需要把最大的标示记下 5 * 然后再进行一次交换 6 */ 7 public class SelectSort 8 { 9 /** 10 *选择排序主方法 11 * 12 */ 13 public static void selectSort(int[] resouceArr) 14 { 15 for(int i = resouceArr.length - 1 ; i >= 0 ; i-- )

简单选择排序SelectSort

package com.cc.dataconsttuct.com; /*** * 简单选择排序:令A[0,n-1]有n个数据元素的数组,将数组A排列为一个非降序的有序数组: * 算法:首先在n个元素中找到最小元素,将其放在A[0]中,然后将剩下的n-1个元素中找到最小的放在A[1]中,这个过程不断进行下去.... * @author caocx * */public class SelectSort { public static void main(String[] args) { // TO

C语言选择排序

#include <stdio.h> //选择排序 void selectSort(int a[],int len){          //外层循环控制趟数,每一趟把一个最小数放到没有排序的序列第一个位置     int min;//保存最小的数的下标     for (int i=0; i<len-1; i++) {                  //假设一个最小值         min = i;                  //找实际的最小值的下标         fo

深入浅出排序算法之-选择排序

#include <iostream> /* 选择排序 基本思想:从后面每次找到最小的一位放到前面已排序好的最后一位 特点:时间复杂度O(n^2) */ void SelectSort(int array[],int n){ int i,j; int temp = 0,flag = 0; for (i = 0; i < n - 1; i++) { temp = array[i]; flag = i; for (j = i+1; j < n; j++) { if (array[j]

快排,冒泡排,选择排序,希尔排序

package cn.hncu.dataStruct; public class SortMethods { /* 算法好坏的评价指标(一般只在n值非常大的时候才会考虑,如n取10万): * 1.时间复杂度: 通俗点,就是指程序运行的快慢(时间)---通常用计算机的运算(算术,赋值)次数来代替 * 2.空间复杂度: 占用内存空间的大小---通常用程序中使用了多少变量(栈内存.堆内存),这些变量总共占了多少内存 */ public static void main(String[] args) {

排序系列 之 简单选择排序及其改进算法 —— Java实现

简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 3,1,5,7,2,4,9,6(共8个数) 1.n=8 个数中,最小数值为1,与第一个数交换:1,3,5,7,2,4,9,6 2.剩下 n-1=7 个数中,最小数值为2,与第二个数交换:1,2,5,7,3,4,9,6 3.剩下 n-2=6 个数中,最小数值为3,与第三个数交换:1,2,3,7,5,4

黑马程序员——选择排序

排序算法有很多,记得当初一开始学C时就有这种问题.那个时候会用也最易理解的排序算法,就是选择排序了(当时并不知道这样的算法还有名字). 思想 还是先来看看选择排序的思想.选择排序的思想非常直接,不是要排序么?那好,从所有序列中先找到最小的,然后放到第一个位置.之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了.可以很清楚的发现,选择排序是固定位置,找元素. // // main.m // SelectSort // // Created by 张贵广 on 15/1

SelectSort 选择排序

# SelectSort选择排序_Python实现 def select_sort(li): for i in range(len(li)): min_index = i # 此处确定刚刚所排序好的最小值的次序 for j in range(i+1, len(li) ): # 此处range最大值为index最高位数+1, 因为遍历是从i+1开始和i对比. if li[j] < li[min_index]: min_index = j li[i], li[min_index] = li[min_

数据结构-选择排序

选择排序 1.选择排序 //堆排序,向下调整子函数 void AdjustDown(int *a, size_t size, size_t root) { size_t parent = root; size_t child = parent * 2 + 1; while (child < size) { //选择孩子节点中较大的节点,与父亲节点交换 if (child + 1 < size&&a[child + 1] > a[child]) { ++child; } i