/*
需求:选择排序 (从小到大)
思路:
1, 假设所需排序的数据(以整型为例)存储在数组中,选择排序是对这 n-i 个数据进行特定形式的比较,从而得出一定的次序(从小到大,或从大到小)。
从n-i个记录中选出关键字最小的记录,并和第i(0<=i<arr.length) 个 记录进行交换。
2, 定义一个排序功能用以比较数组中数据的大小。
①---定义一个min变量,用于存放数组中下标为i的数组元素的值。
②---然后将arr[min]与其后的数组元素进行大小比较,
程序第一次执行时,即arr[min]=arr[0];
若arr[min]大于arr[1],则执行 min=1; 此时arr[min]存放的数据是相对之前min=0; 时的值小。
重复②,循环结束后 此时若min的值不等于i;则进行数值交换。
3,定义一个交换数据的功能,用于交换数据。
4,定义一个打印数组的功能,用于打印数组。
*/
class SortDemo
{
//打印数组功能
public static void printArray(int[] arr)
{
System.out.print("[");
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]+"]");
}
}
//交换数据
public static void swap(int []arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//排序功能
public static void selectSort(int []arr)
{
for(int x=0;x<arr.length-1;x++)
{
int min=x;
for(int y=x+1;y<arr.length;y++)
{
if(arr[min]>arr[y])
min=y;
}
if(x!=min)
swap(arr,min,x);
}
}
public static void main(String[]args)
{
int [] arr={9,5,43,78,14,57,7};
printArray(arr);
sort(arr);
printArray(arr);
}
}
/*
总结:
方法调用的灵活性,传参数时不用带类型符号。
*/
分享到:
相关推荐
本笔记包括了冒泡排序与选择排序的一些基本过程与相同点与不同点的比较,例如,冒泡排序与选择排序的算法讲述,对学c的新手十分友好,本人愚笨,如有看不懂,请见谅。
C#排序算法总结:交换排序:最基础的冒泡排序,冒泡排序的优化版选择排序和快速排序,插入排序:直接插入排序和折半插入排序。
选择排序、插入排序、冒泡排序、希尔排序、快速排序、箱子排序、基数排序、归并排序、堆排序 : 小总结
常用排序算法总结,包含:冒泡排序、鸡尾酒排序、选择排序、插入排序、二分插入排序、希尔排序、归并排序、堆排序、快速排序等排序算法总结。
二 选择排序 每次最小 大排在相应的位置 三 插入排序 将下一个插入已排好的序列中 四 壳(Shell)排序 缩小增量 五 归并排序 六 快速排序 七 堆排序 八 拓扑排序 九 锦标赛排序 十 基数排序">这是排序算法的...
常用排序算法总结,包括插入排序(InsertionSort),冒泡排序(BubbleSort),选择排序(SelectionSort),快速排序(QuickSort), * 二路归并排序(MergeSort),堆排序(HeapSort)。有每一种排序算法的复杂度分析以及实现...
常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数 排序、桶排序、基数排序。
几种内部排序算法总结!(冒泡排序、快速排序、直接插入排序、拆半插入排序、简单选择排序)
【数据结构的内部排序总结】1 / 10 数据结构排序方法总结全文共10页,当前为第1页。数据结构排序方法总结全文共10页,当前为第1页。数据结构的内部排序 数据结构排序方法总结全文共10页,当前为第1页。 数据结构排序...
最经典的8大排序算法总结,插入排、冒泡排序、快速排序、简单选择排序、归并排序、二叉树排序、基数排序等。
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以...本资料详细总结了数据结构排序问题的实现与分析,希望对大家能有所帮助。
这是关于冒泡排序与选择排序的探讨与总结,可以用于教学,自学等.....
10种常用算法总结,冒泡排序,选择排序,插入排序等等
/*冒泡法 /*快速排序 /*插入排序 /*希尔(shell)排序 /*选择排序 /*堆排序 /*归并排序
有10余种排序算法的代码和图解分析,同时还有之间的区别,其中涉及到一些基础的数据结构,树,图,二叉树,堆等.堆排序,快速排序,希尔排序,归并排序,插入排序,选择....
包含常用排序算法:选择,冒泡,插入,快速排序,归并排序。并分析了几种排序算法的时间复杂度
这些代码是对算法导论上对排序部分的总结,实现了以下排序方法:插入排序,合并排序,堆排序,快速排序,计数排序,每种实现都有详细的注释和相应的测试程序,可查找http://blog.csdn.net/china8848<br>中对相关问题...
python选择排序算法实例总结电脑资料.doc