黑马程序员技术交流社区
标题:
选择排序怎么做
[打印本页]
作者:
boboyuwu
时间:
2016-1-31 20:09
标题:
选择排序怎么做
来来来
作者:
l845590743
时间:
2016-1-31 20:09
for (int i = 0; i < arr.length - 1; 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;} } } 还可以调用方法Arrays.sort(arr); System.out.println(Arrays.toString(arr));
作者:
梁志朋
时间:
2016-1-31 20:28
public class Test { // 排序的方法 public static void selectSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = x + 1; y < arr.length; y++) { if (arr[x] > arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } // 循环遍历 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } public static void main(String[] args) { int[] a = { 3, 7, 2, 8, 5 };// 定义数组 // 调用方法 selectSort(a); } }
作者:
梁志朋
时间:
2016-1-31 20:30
刚刚那个太不清楚了,上传了张图片
作者:
858009904
时间:
2016-1-31 22:29
只是看写好的代码,并不能解决问题!一定要亲自动手,把它的过程,一步一步的分解出来!代码体现的出来的,都是解决过程汇总出来的!有时候没法直接从代码中看出整个的过程!
作者:
西贝
时间:
2016-2-1 14:01
public static void selectSort(int[] arr) {
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
复制代码
作者:
西贝
时间:
2016-2-1 14:04
public static void bubble(int[] arr) {
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
复制代码
作者:
huijiadanipp
时间:
2016-2-2 13:18
在要排序的一组数中找到最小的数,和第一个数交换位置,再从剩下的数找到最小的和第二个数交换位置,依次循环直到倒数第二个数和最后一个数比较为止
作者:
huijiadanipp
时间:
2016-2-2 13:19
huijiadanipp 发表于 2016-2-2 13:18
在要排序的一组数中找到最小的数,和第一个数交换位置,再从剩下的数找到最小的和第二个数交换位置,依次循 ...
相当于有n-1辞循环,每次循环后要进行比较的数为n-i个,所以用两次for循环比较合适
作者:
jacky左
时间:
2016-2-2 15:12
凑热闹来了
作者:
谁的苍茫
时间:
2016-2-2 19:16
老师的视频里面讲的很清楚了,为什么不去看视频呢
作者:
七岁
时间:
2016-2-3 12:50
思路基本就是第一个for循环是遍历,从第一个到倒数第二个,第二个for循环控制比较,每次都用开始的那个数和后边的逐个去比较,如果大了就交换就好了
作者:
guansuting
时间:
2016-2-3 15:55
选择排序思路就行
作者:
life55
时间:
2016-2-3 17:00
这个在视频中就有了,自己去看才能理解,他们粘贴个代码你理解不了的,给他们黑马币浪费了,给我吧! 哈哈 视频再官网基础视频--第13天--第15个视频(里面讲的很详细了)
作者:
847374032
时间:
2016-2-3 18:03
public static void bubble(int[] arr) {
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
作者:
宋达思
时间:
2016-2-4 16:54
class Arrse
{
public static void main(String[] args)
{
int[] arr={5,1,6,4,2,8,9};
print(arr);//排序前打印
selectSort(arr);//排序
print(arr);//排序后打印
}
public static void selectSort(int[] arr)
{
for (int x=0;x<arr.length-1;x++)
{
for (int y=x+1;y<arr.length;y++)
{
if (arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void print(int[] arr)
{
System.out.print("[");
for (int x=0;x<arr.length ;x++ )
{
if (x!=arr.length-1)
{
System.out.print(arr[x]+",");
}
else
System.out.println(arr[x]+"]");
}
}
}
复制代码
以上为代码,这个应该是最基本的做法了,下面附上原理图:
选择排序原理图
作者:
敲程序的猿
时间:
2016-2-4 23:27
我是来顶贴的
作者:
zxw1133
时间:
2016-2-5 14:50
新年到,也要好好学习,这个年,注定难忘。
作者:
yuchifeifan
时间:
2016-2-5 20:36
给你个最终版
public void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){ //遍历数组里面(除最后一个元素)的元素
for(int j=i+1;j<arr.length){ //把遍历到的元素和他后面所有的元素进行对比
if(arr[i]>arr[j]){ //如果后面有比他小的元素就替换他们的位置 每次都使小的在前面
arr[i]=arr[i]^arr[j];
arr[j]=arr[i]^arr[j];
arr[i]=arr[i]^arr[j];
}
}
}
}
作者:
陈梦佳
时间:
2016-2-8 10:40
本帖最后由 陈梦佳 于 2016-2-8 10:44 编辑
public class selectSortArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[]array={2,8,1,3,9,4}; //定义一个需要排序的数组
selectSort(array); //调用选择排序方法
for (int i = 0; i < array.length; i++) { //循环打印排序后的数组元素
System.out.print(array[i]+" ");
}
}
public static void selectSort(int[] array) {
// TODO Auto-generated method stub
for (int i = 0; i < array.length-1; i++) { //外循环控制比较次数
for (int j = i+1; j < array.length; j++) { //内循环控制比较元素
if (array[i]>array[j]) {
int temp=array[i]; //定义一个中间变量存放较大的元素
array[i]=array[j]; //元素较小的值赋给较大元素
array[j]=temp; //元素较大的值赋给较小元素
}
}
}
}
}
复制代码
作者:
保密工作
时间:
2016-2-9 07:16
在要排序的一组数中找到最小的数,和第一个数交换位置,再从剩下的数找到最小的和第二个数交换位置,依次循环直到倒数第二个数和最后一个数比较为止
最佳答案
public class selectSortArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[]array={2,8,1,3,9,4}; //定义一个需要排序的数组
selectSort(ar
作者:
toolz
时间:
2016-2-13 14:06
排序代码,和排序视频我上传网上了,你下载看看吧
链接: http://pan.baidu.com/s/1kUsApZx 密码: 8ssw
作者:
tpcd
时间:
2016-2-15 18:11
class xuanze { public static void selectsort(int[]arr) { for(int x=0;x<arr.length-1;x++) { for(int y=x+1;y<arr.length;y++) { if(arr[x]>arr[y]) { int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } } } } public static void main(String[]args) { int []arr={1,5,8,6,4,2}; selectsort(arr);
作者:
xiyecao
时间:
2016-2-16 13:52
选择排序就是从第一个数开始
作者:
xiyecao
时间:
2016-2-16 13:59
n个数选择排序就是(默认从小到大正序输出):第一步:从第一个数开始,依次与后面的数进行比较,如果遇到比自己小的数后就交换直到最后一个数,然后记录最小的数放在第一位;第二步:从第二个数开始执行上述操作依次遍历剩余的数,拿出最小的放在第二位;~~~依次循环直至执行到第n-1步,然后遍历输出
作者:
wx_AMgIUC0M
时间:
2016-2-18 13:17
我学的是ios,来说说思想把,其实就是一个数组,第一次用第一个和剩下的其他数比较大小,假如从小到大排列,则
作者:
wx_AMgIUC0M
时间:
2016-2-18 13:24
我学的是ios,来说说思想把,其实就是一个数组,第一次用第一个和剩下的其他数比较大小,假如从小到大排列,则比arr[0]小的数放到arr[0]中,第二次就是把arr[1]和arr[2]到arr[n]的数比较,比较小的数放到arr[1]中,以此类推.则arr[i]和其它剩下的数逐次比较,当有小的数就放到arr[i]中.
作者:
cuculidae
时间:
2016-2-18 23:28
将数组的第一个元素依次和后面的每个元素比较 得出最值 把最值放在角标0的位置 把原来角标0位置的元素放在最值的角标位置上
将数组的第二个元素按上面的方法操作
。。。
直到最后一个元素为止
作者:
xiaoyaohou
时间:
2016-2-19 00:55
for(int i=0;i<a.length-1;i++){
//找 [i, a.length)范围内的最小值,
//假设i位置最小,下标i赋给j
int j=i;
for(int k=i+1;k<a.length;k++){
if(a[k]<a[j]){
j=k;
}
int c=a[j];
a[j]=a[i];
a[i]=c;
}
作者:
夜正黑
时间:
2016-2-19 19:39
多给你来几个排序方法
1.选择排序
private static void selectSort(int[] a) {
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length - i; j++) {
if (a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
//冒泡排序
private static void bubbleSort(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
//自带的排序方法
private static void sort(int[] a) {
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
作者:
Devilbaby
时间:
2016-2-19 21:50
/*
* 选择排序基本思路:
* 把第一个元素依次和后面的所有元素进行比较。
* 第一次结束后,就会有最小值出现在最前面。
* 依次类推
*/
public class SelectionSort {
public static void sort(int[] data) {
for (int x = 0; x < data.length - 1; x++) {
for (int y = x + 1; y < data.length; y++) {
if (data[y] < data[x]) {
SortTest.swap(data, x, y);
}
}
}
}
}
作者:
久伴
时间:
2016-2-20 08:50
{:2_34:}{:2_34:}我就默默看你水
作者:
乐龙
时间:
2016-2-25 23:39
我也不会饿
作者:
songyongpeng
时间:
2016-2-25 23:48
设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。
欢迎光临 黑马程序员技术交流社区 (https://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2