二分插入排序的 Java 程序

javaobject oriented programmingprogramming更新于 2025/7/7 0:44:17

二分插入排序使用二分搜索在每次迭代时找到在特定索引处插入元素的正确位置。首先,找到需要插入元素的位置。然后,将元素移至下一个正确位置。现在,将特定元素放置在该位置。

以下是二分插入排序的 Java 代码 −

示例

public class Demo{
   void Cocktail_Sort(int my_arr[]){
      boolean swapped = true;
      int start = 0;
      int end = my_arr.length;
      while (swapped == true) {
         swapped = false;
         for (int i = start; i < end - 1; ++i) {
            if (my_arr[i] > my_arr[i + 1]) {
               int temp = my_arr[i];
               my_arr[i] = my_arr[i + 1];
               my_arr[i + 1] = temp;
               swapped = true;
            }
           }
         if (swapped == false)
            break;
         swapped = false;
         end = end - 1;
         for (int i = end - 1; i >= start; i--) {
            if (my_arr[i] > my_arr[i + 1]) {
               int temp = my_arr[i];
                my_arr[i] = my_arr[i + 1];
                my_arr[i + 1] = temp;
               swapped = true;
            }
           }
         start = start + 1;
      }
   }
   void print_values(int my_arr[]){
      for (int i = 0; i < my_arr.length; i++)
      System.out.print(my_arr[i] + " ");
      System.out.println();
   }  
    public static void main(String[] args){
      Demo my_object = new Demo();
      int my_arr[] = { 6, 8, 34, 21, 0, 1, 98, 64, 6};
      System.out.println("该数组包含");
      for (int i = 0; i < my_arr.length; i++)
      System.out.print(my_arr[i] + " ");
      System.out.println();
      my_object.Cocktail_Sort(my_arr);
      System.out.println("执行鸡尾酒排序后的数组为:");
      my_object.print_values(my_arr);
   }
}

输出

数组包含
6 8 34 21 0 1 98 64 6
执行鸡尾酒排序后的数组为:
0 1 6 6 8 21 34 64 98

相关文章


有用资源