데이터 구조 정렬 (삽입, 선택, 거품)
4251 단어 데이터 구조
package com.student.common;
public class Sort {
public static void main(String[] args) {
int [] number = {41,24,76,11,45,64,21,69,19,36};
//selectSort(number);
//bobSort(number);
insertSort(number);
for(int j : number)
System.out.println(j);
}
/**
*
, , ,
, , :
[1] 80 31 37 10 70 48 60 33 80 1
[1 10] 31 37 80 70 48 60 33 80 10
[1 10 31] 37 80 70 48 60 33 80 31
[1 10 31 33 37] 70 48 60 80 80 ......
[1 10 31 33 37 48] 70 60 80 80 ......
[1 10 31 33 37 48 60] 70 80 80 ......
[1 10 31 33 37 48 60 70] 80 80 ......
[1 10 31 33 37 48 60 70 80] 80 ......
* @param number
*/
public static void selectSort(int [] number)
{
for(int i=0;i<number.length;i++)
{
for(int j=i+1;j<number.length;j++)
if(number[j] <number[i])
swap(number,i,j);
}
}
/**
* , , , ,
:
[77 92] 67 8 6 84 55 85 43 67 77 92
[67 77 92] 8 6 84 55 85 43 67 67 77
[8 67 77 92] 6 84 55 85 43 67 8 67
[6 8 67 77 92] 84 55 85 43 67 6 8
[6 8 67 77 84 92] 55 85 43 67 84 92
[6 8 55 67 77 84 92] 85 43 67 55 67
[6 8 55 67 77 84 85 92] 43 67 ......
[6 8 43 55 67 77 84 85 92] 67 ......
[6 8 43 55 67 67 77 84 85 92] ......
* @param number
*/
public static void insertSort(int [] number)
{
for(int j=1;j<number.length;j++)
{
//
int temp = number[j];
int i= j-1;
while(temp < number[i])
{
//
number[i+1] = number[i];
i--;
if(i==-1) break;
}
number[i+1] = temp;
}
}
/**
*
* @param number
*/
public static void bobSort(int [] number)
{
for(int i=0;i<number.length;i++)
{
for(int j=0;j<number.length-i-1;j++)
if(number[j] > number[j+1])
swap(number, j+1, j);
}
}
private static void swap(int[] number, int i, int j) {
int t;
t = number[i];
number[i] = number[j];
number[j] = t;
}
}