选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最大的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。
java选择排序法代码
import java.util.Random;
public class ArrayDemo {
public static void main(String[] args) {
Random random=new Random();
int[] pData=new int[10];
for(int i=0;i Integer a =random.nextInt(100); pData[i]= a; System.out.print(pData[i]+" "); } System.out.println(); pData=Choose(pData); for(int i=0;i System.out.print(pData[i]+" "); } System.out.println(); } public static int[] Choose(int[] pData){ System.out.println(); int k; for (int i = 0; i < pData.length; i++) { k = i; for (int j = i; j < pData.length; j++) { if(pData[j] } int a=pData[i]; pData[i]=pData[k]; pData[k]=a; } return pData; } } 扩展资料: 其他排序方法: 简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换; 以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。 以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列: 初始序列:{49 27 65 97 76 12 38} 参考资料:百度百科-选择排序法
第1趟:12与49交换:12{27 65 97 76 49 38}
第2趟:27不动 :12 27{65 97 76 49 38}
第3趟:65与38交换:12 27 38{97 76 49 65}
第4趟:97与49交换:12 27 38 49{76 97 65}
第5趟:76与65交换:12 27 38 49 65{97 76}
第6趟:97与76交换:12 27 38 49 65 76 97 完成
//冒泡法排序
#include "stdio.h"
#define N 10
main()
{
int a[N];
int i,j,temp;
for(i=0;i
for(i=0;i
printf("\n");
for(i=0;i
}
/*选择排序*/
#include "stdio.h"
#define N 10
main()
{
int a[N];
int i,j,p,temp;
for(i=0;i
for(i=0;i
p=i;
for(j=i+1;j
}
printf("\n");
for(i=0;i
}