just another page - you may find interesting: programming and some other stuff

google.de | FH Karlsruhe
Portal | Gästebuch | News | Links | Mami | about me | Humor | StayFriend | Amazon-Wunschliste |
             Pascal | Delphi | C++ | html | JS | Sortieralgorithmen
Semester 1 | Semester 2 | Semester 3 | Semester 4 |
                                            CiscoTrainer | MultiUserChat | Knobelspiel: Eisbären und Pinguine
                                                                                                    main | info | kontakt
subglobal8 link |

Sortieralgorithmen

Sortieren durch EINFÜGEN - Direktes Einfügen (straight insertion)


Struktogramm
- Direktes Einfügen (straight insertion)



Beispiel: Datenfeld mit 5 Elementen

INDEX I

1

2

3

4

5

I

Einfügeelement EE

VI

ELEMENT E[I]

17

9

10

6

12

2

9

1

 

17

17

10

6

12

 

 

0

 

9

17

10

6

12

3

10

2

 

9

17

17

6

12

 

 

1

 

9

10

17

6

12

4

6

3

 

9

10

17

17

12

 

 

2

 

9

10

10

17

12

 

 

1

 

9

9

10

17

12

 

 

0

 

6

9

10

17

12

5

12

4

 

6

9

10

17

17

 

 

3

 

6

9

10

12

17

 

 

 


Algorithmus: (Grobstruktur)

Finde für das Einfügeelement EE:=E[I] die richtige Stelle in der bereits sortierten Teilfolge E[1] ...E[I-1] und ordne das Einfügeelement EE dort ein!

Programm-Code (in Java) 


public class mainEx {
  
public static void main(String[] args) {
    Straight_insertion
X = new Straight_insertion();
    X.fillArray();
    System.out.println(
"unsortiert");
    for(int i=1;i<6;i++)
    {
      System.out.print(X.Array1[i]+
" ");
    }
    X.sortArray();
    System.out.println();
    System.out.println(
"sortiert");
    for(int i=1;i<6;i++)
    {
      System.out.print(X.Array1[i]+
" ");
    }
  }
}


package
straight_insertion;
/*
 * Created on 11.01.2004
 */
/**
 * @author Florian Ercevic
 */
import java.util.Random;
public class Straight_insertion
{
  Random generator = new Random();
  int N=5;
  public int [] Array1 = new int[N+1];
  public int [] fillArray()
  {
    for(int i=1;i<N+1;i++)
    {
      Array1[i] = 1 + generator.nextInt(100);
    }
    return Array1;
  }
  public int [] sortArray()
  {
    int VI=0,EE=0;
    for(int i=2;i<N+1;i++)
    {
      EE=Array1[i];
      VI=i-1;
      while(EE<Array1[VI] && VI>0)
      {
        Array1[VI+1]=Array1[VI];
        VI=VI-1;
      }
      Array1[VI+1]=EE;
    }
    return Array1;
  }
}

About Me | Site Map | Privacy Policy | Contact Me | last update: © Florian Ercevic