一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

《數(shù)據(jù)結(jié)構(gòu)》之四大排序算法

 讀書百遍者 2024-11-22 發(fā)布于河北

一、冒泡排序

package SortingAlgorithm;

public class BubbleSort
{

    public static void main(String[] args)
    {
        int[] array = {6,3,4,0,7,8,5,9,2,1};
        BubbleSort bubblesort = new BubbleSort();
        bubblesort.bubbleSort(array);
        bubblesort.showArray(array);
    }

    public static void bubbleSort(int[] arr)
    {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = 0; j < n - i - 1; j++)
            {
                if (arr[j] > arr[j + 1])
                {
                    // 交換 arr[j] 和 arr[j + 1]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

    }
    public void showArray(int[] arr)
    {
        for(int i:arr)
        {
            System.out.print(i+" ");
        }
    }
}

def bubble_sort(arr):
    n = len(arr)
    for i in range(n-1):
        for j in range(n-i-1):
            if arr[j]>arr[j+1]:
                arr[j],arr[j+1] = arr[j+1],arr[j]
array=[6,3,4,0,7,8,5,9,2,1]
bubble_sort(array)
for i in range(len(array)):
    print(array[i])

二、選擇排序

public class SelectionSort
{
    public static void main(String[] args)
    {
        int[] array={45,32,14,54,23};
        SelectionSort selectionsort = new SelectionSort();
        selectionsort.selectionSort(array);
        selectionsort.showArray(array);
    }
    public static void selectionSort(int[] arr)
    {
        int n = arr.length;
        for(int i=0;i<n-1;i++)
        {
            int min_idx=i;
            for(int j=i+1;j<n;j++)
            {
                if (arr[j]<arr[min_idx])
                {
                    min_idx=j;
                }
            }
            int temp = arr[min_idx];
            arr[min_idx]=arr[i];
            arr[i]=temp;
        }
    }
    public void showArray(int[] arr)
    {
        for(int i:arr)
        {
            System.out.print(i+" ");
        }
    }
}

def selection_sort(arr):
    n = len(arr)
    for i in range(n-1):
        min_idx = i
        for j in range(i+1,n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i],arr[min_idx] = arr[min_idx],arr[i]
array=[45,32,14,54,23]
selection_sort(array)
for i in range(len(array)):
    print(array[i])

三、插入排序

public class InsertionSort
{
    public static void main(String[] args)
    {
        int[] array = {42,20,17,13,28,14,23,15};
        InsertionSort insertionsort = new InsertionSort();
        insertionsort.insertionSort(array);
        insertionsort.showArray(array);
    }
    public static void insertionSort(int[] arr)
    {
        int n=arr.length;
        for(int i=1;i<n;i++)
        {
            int key = arr[i];
            int j=i-1;
            while(j>=0 && arr[j]>key)
            {
                arr[j+1]=arr[j];
                j=j-1;
            }
            arr[j+1]=key;
        }
    }
    public static void showArray(int[] arr)
    {
        for(int i=0;i<arr.length;i++)
        {
            System.out.print(arr[i]+" ");
        }
    }
}

def insertion_sort(arr):
    n = len(arr)
    for i in range(1,n):
        key = arr[i]
        j = i - 1
        while j>= 0 and arr[j] > key:
            arr[j+1] = arr[j]
            j-=1
        arr[j+1] = key
array = [42,20,17,13,28,14,23,15]
insertion_sort(array)
for i in range(len(array)):
    print(array[i])

四、快速排序

public class QuickSort
{
    public static void main(String[] args)
    {
        int[] array={4,7,6,5,3,2,8,1};
        int n = array.length;
        QuickSort quicksort = new QuickSort();
        quicksort.quickSort(array,0,n-1);
        quicksort.showArray(array);
    }
    public static void quickSort(int[] arr,int low,int high)
    {
        if(low<high)
        {
            int pivotIndex = partition(arr,low,high);
            quickSort(arr,low,pivotIndex-1);
            quickSort(arr,pivotIndex+1,high);
        }
    }
    public static int partition(int[] arr,int low,int high)
    {
        int pivot = arr[high];
        int i=low-1;
        for(int j=low;j<high;j++)
        {
            if (arr[j] <= pivot)
            {
                i++;
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        int temp  = arr[i+1];
        arr[i+1]=arr[high];
        arr[high]=temp;
        return i+1;
    }
    public static void showArray(int[] arr)
    {
        for(int i=0;i<arr.length;i++)
        {
            System.out.print(arr[i]+" ");
        }
    }
}

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)
array = [4,7,6,5,3,2,8,1]
sorted_arr=quick_sort(array)
for i in range(len(sorted_arr)):
    print(sorted_arr[i])

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美人妻少妇精品久久性色| 热情的邻居在线中文字幕| 久久热在线免费视频精品| 又色又爽又无遮挡的视频| 噜噜中文字幕一区二区| 好吊视频一区二区在线| 黄片在线免费看日韩欧美| 好吊色欧美一区二区三区顽频| 亚洲欧美中文字幕精品| 欧美国产在线观看精品| 亚洲一级二级三级精品| 国产高清一区二区不卡| 久久re6热在线视频| 欧美夫妻性生活一区二区| 亚洲深夜精品福利一区| 国产一区欧美一区日韩一区| 麻豆在线观看一区二区| 日本熟妇五十一区二区三区 | 国产精品色热综合在线| 日本欧美在线一区二区三区| 日韩毛片视频免费观看| 在线观看视频日韩成人| 国产不卡最新在线视频| 日韩黄片大全免费在线看| 丁香六月婷婷基地伊人| 精品一区二区三区免费看| 日本国产欧美精品视频| 国产户外勾引精品露出一区| 欧美日韩中黄片免费看| 国产免费无遮挡精品视频 | 永久福利盒子日韩日韩| 亚洲中文字幕视频在线观看| 国产二级一级内射视频播放 | 日韩综合国产欧美一区| 免费黄片视频美女一区| 自拍偷拍福利视频在线观看 | 色播五月激情五月婷婷| 69久久精品亚洲一区二区| 久久国产精品熟女一区二区三区| 国产黄色高清内射熟女视频| 久久99午夜福利视频|